docker呼叫程序(nodejs)从另一个容器(主pipe)

我的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 

我创build了supervisor程序configuration文件:

 [program:nodejs.socket] command=nodejs /var/www/html/node/server.js autostart=true 

但是 :我不能运行这个程序,因为主pipe的容器

找不到命令'nodejs'


问题 :我真的可以从supervisor-container运行nodejs,还是必须在nodejs-container中安装supervisor?

问题:我真的可以从supervisor-container运行nodejs,还是必须在nodejs-container中安装supervisor?

您必须在拥有nodejs的映像中安装supervisor,因为supervisor需要执行nodejs,这意味着将其作为subprocess。

这是常用的方法。 但是 ,您可以在两个容器之间共享pid名称空间,但是您也需要在同一图像中安装nodejs。 所以在那个时候,这变得棘手。