如何在Docker中执行多个CMD命令?

3

我想执行这两个命令。

CMD ["supervisord", "-n",]
CMD ["busybox" , "crond", "-b", "-L", "/dev/stderr"]

我知道工作只在CMD上进行。所以我尝试一个一个地执行这些命令。但是它们都没有成功。
CMD ["supervisord", "-n", "&&" , "busybox" , "crond", "-b", "-L", "/dev/stderr"]

CMD ["supervisord", "-n", ";" , "busybox" , "crond", "-b", "-L", "/dev/stderr"]

CMD supervisord -n; busybox crond -b -L /dev/stderr

如果您知道如何解决这个问题,请告诉我!

将一个包含所有你想要运行的命令的 shell 脚本添加到 Docker 中,然后在 Dockerfile 中使用 CMD 命令来运行该脚本。 - Popmedic
2个回答

2

您可以添加一个 shell 脚本,用于 bash:

#!/usr/bin/env bash
# file: startup.sh
supervisord -n
busybox crond -b -L /dev/stderr

然后在 Dockerfile 中执行以下操作:

...
COPY startup.sh /startup.sh
RUN chmod 744 /startup.sh
...
CMD ["/startup.sh"]

在CMD之前,还需要运行chmod 744 /startup.sh。 - Nori

1

您能在同一行上运行这两个命令吗?

CMD supervisord -n && busybox crond -b -L /dev/stderr

可以在同一行上运行这两个命令吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接