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。 所以在那个时候,这变得棘手。