- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
遇到 tmux
未在 docker 容器文件中初始化的问题。此外,人们将 tmux
附加到预先存在的容器中,也会造成搜索障碍。这不是我想要做的。
# in the dockerfile
FROM debian:latest
RUN apt-get install tmux
RUN tmux new -s foo -d
RUN tmux ls
_________________________
$: docker build .
...
> [8/8] RUN tmux ls:
#11 0.415 no server running on /tmp/tmux-0/default
------
executor failed running [/bin/sh -c tmux ls]: exit code: 1
我想做的是运行几个需要同时相互通信的“应用程序”。这个想法是为了避免使用 docker compose 来解决这个特定问题。
我可以轻松地将这两个命令作为后台进程运行。
但是,我宁愿让它们在 tmux session 中运行,我可以在图像运行时附加到该 session 中。
如何在构建过程中 在 docker 容器内启动 tmux
?
最佳答案
这是图层的问题:
此代码将完成您的工作。
FROM debian:latest
RUN apt-get update && apt-get install -y tmux
RUN tmux new -s foo -d && tmux ls
但这只能解决构建问题,不能解决您的问题。
你应该在入口点这样做,因为当层终止时 tmux 被杀死......
在每一层的构建过程中,您可以启动一些进程(您启动了 tmux)。图层构建完成后,所有在该特定图层中启动的进程都会被终止。
容器只是只读图像层之上的另一层,因此您需要在那里启动 tmux。
入口点是您在容器引导时运行的 bash 脚本。
示例入口点可以是:
#!/bin/bash
# entrypoint.sh
set -eu
tmux new -s foo -d && tmux ls
exec "$@"
chmod +x 入口点.sh
Dockerfile
中复制执行\ COPY ./entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
在 docker 镜像中启动多个程序是不好的做法。您正在失去 docker 的主要优势,即分离。
但是,官方文档对您的问题说了一句话:https://docs.docker.com/config/containers/multi-service_container/
我真的很喜欢用 supervisord
来做(当我不得不这样做的时候)。这是一个管理程序的小程序。
关于Docker:在 dockerfile 中启动 tmux session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65674604/
在 Mac Mountain Lion 上,tmux 通过 Homebrew 安装。 以下某些设置不起作用: setw -g pane-base-index 1 set -g mouse-resize
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我正在编写一个 shell 脚本,用于创建/附加或切换到给定 session ,具体取决于 session 是否位于 tmux 内部以及 session 是否存在。 除了需要在 tmux sessio
我在 iTerm2 中使用 tmux 已经有一段时间了,但我没有使用现在 iTerm2 附带的 tmux 集成。 我开始考虑使用 tmux 集成,因为它允许您在 tmux 中使用 shell 集成。
我正在尝试编写一个可以运行/源代码的脚本,以便 tmux 设置特定的布局并运行命令。我有一些结果。 这是我到目前为止所写的内容: selectp -t 1 splitw -v -p 15 splitw
我写了 this thing每当在运行 session 中创建新窗口时,我都想获取 Python virtualenv activate 脚本。 是否可以? default-command 选项与 s
我想从下到上移动窗口列表。 如果应用程序的状态栏在 tmux 窗口列表上方,我会觉得它很奇怪。 任何提示? 最佳答案 看到这个 answer on Unix & Linux .如果您从 SVN 构建,
我在 gnome 终端内使用 tmux。 当我第一次打开一个窗口(默认大小为 80x24)时,tmux 栏紧贴在窗口的底部。然而,当我最大化终端窗口时,tmux 栏下方会出现一个令人讨厌的大间隙。 m
Tmux 使用 scroll 来查找历史命令,这让我很困扰。如何禁用此功能?我曾尝试使用“设置鼠标”,但它给了我另一个问题。我只想一直禁用我的鼠标,让滚动保留其原始用途。 最佳答案 Tmux 不再有鼠
我刚刚在我的新 MacBook Pro 上安装了 tmux,并且遇到了以下问题。 当我通过命令 tmux new-window 创建一个新窗口时我得到一个与我正在创建的 session 具有相同工作目
我经常同时运行几个 tmux session ,在大多数这些 session 中,我将在一个端口上运行一个本地服务器。我想要的是能够在从 tmux session 分离时自动终止该服务器,并在重新连接
有没有办法重新编号或交换 tmux session ,就像您可以重新编号或交换 tmux 窗口一样?我看不到它的任何命令,并希望在某些 session 之间轻松切换。 最佳答案 它们按名称排序(默认为
tmux 有一个命令模式,可以通过 C-b : 访问我想知道在我的 .tmux.conf 中是否有别名命令的方法像 split-window 这样的文件对于我更常用的东西,例如 vsp在 vim. 我
这样做的天真方法行不通。尝试这个: 启动第一个 tmux session 。 $ export ENVIRONMENT="production" $ tmux 然后您可以在 session 内验证 E
我管理着多台 Linux 机器,其中一些在存储库中的 tmux 版本为 2.1,而另一些的 tmux 版本低于 2.1。我使用鼠标模式,我知道在 tmux 2.1 中,启用鼠标模式的选项已更改为: s
我在 tmux 命令提示符下使用 Backspace 键时遇到问题。退格会删除 tmux 中的前一个字符(如预期的那样),但不会在 tmux 命令提示符下删除。例如,:lists不会删除 's' 字符
刚刚通过 homebrew 安装了 tmux我正在尝试找到系统范围的 tmux 配置文件。手册页指出系统范围的文件应该位于 /etc/tmux.conf ,但由于某种原因,它不在那里。默认在哪里tmu
我在 iTerm2 中使用 tmux。 当我在 bash 中时,使用 Ctrl-L 清除屏幕有效,但在我拖尾服务器日志时不起作用。我该如何解决? 最佳答案 您可以使用 send-keys -R 清除当
我可以设置 tmux 以在进程完成时在非事件窗口中触发警报吗? 例如:我开始了一个漫长的构建过程。我希望在完成时收到通知,而不是每次打印状态时都收到通知。 最佳答案 我很惊讶还没有给出这个答案:您可以
这是this question的后续. 假设我在一个 tmux session 中,我想打印 的名称当前 socket 正在使用。我怎样才能做到这一点? 最佳答案 当前服务器套接字的信息存储在 TMU
我是一名优秀的程序员,十分优秀!