Docker Alpine linux运行2个程序

Zol*_*olo 3 python ash docker alpine-linux

我正在尝试使用alpine linux创建docker镜像,在运行之后将创建具有2个正在运行的程序的容器.这个2(在我看来 - 我不太熟悉docker)无法分开,因为第一个程序更改了秒配置文件,然后也应该重新启动该程序.

我正在努力如何运行这两个程序.我已经添加了自己的脚本,应该运行该程序,但我遗漏了一些东西 - 脚本是每行2行是运行该程序的命令 - 它只启动第一个程序.

在使用python subprocess和systemctl命令的ubuntu中,我重新启动运行服务,但在alpine linux中,它作为程序运行,我不知道如何重新启动/重新加载它.

谢谢你的帮助

Nic*_*lay 9

我建议看一下supervisord方法.您可以在docker文档中找到如何使用它.

一些例子:

1. Dockerfile是:

FROM alpine:latest
RUN apk update && apk add --no-cache supervisor openssh nginx
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
Run Code Online (Sandbox Code Playgroud)

2. supervisord.conf是:

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:nginx]
command=nginx -c /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)

  • 此 Dockerfile 中“RUN mkdir -p /etc/supervisor.d”的用途是什么?在 http://supervisord.org/ 的链接中看不到它。 (3认同)