我的docker-compose.yml就像:
nodejs:
build: .
dockerfile: Dockerfile-nodejs
tty: true
ports:
- "${SOCKET_PORT}:8081"
volumes:
- ../node:/var/www/html
supervisor:
build: .
dockerfile: Dockerfile-supervisor
tty: true
volumes:
- ..:/var/www/html
- ./config/supervisor/conf.d:/etc/supervisor/conf.d
links:
- nodejs:nodejs
我已经创建了超级用户程序配置文件:
[program:nodejs.socket]
command=nodejs /var/www/html/node/server.js
autostart=true
但是:我无法运行此程序,因为主管的容器
无法找到命令'nodejs'
问题:我可以从supervisor-container实际运行nodejs,还是必须在nodejs-container中安装supervisor?
答案 0 :(得分:0)
问题:我可以从supervisor-container实际运行nodejs,还是必须在nodejs-container中安装supervisor?
您必须在包含nodejs的映像中安装supervisor,因为supervisor需要执行nodejs,这意味着将其作为子进程。
这是常见的方式。 但是,您可以在两个容器之间共享pid
命名空间,但您也需要在同一图像中安装nodejs。所以在那一点上,这变得很棘手。