【问题标题】:docker call program (nodejs) from another container (supervisor)来自另一个容器(主管)的 docker 调用程序(nodejs)
【发布时间】:2017-11-15 12:27:39
【问题描述】:

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

【问题讨论】:

  • 不是命令节点吗?
  • 默认是node,但是我已经在docker-compose.yml文件中重命名了。无论如何它也不起作用。

标签: node.js docker supervisord


【解决方案1】:

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

必须在包含nodejs的镜像中安装supervisor,因为supervisor需要执行nodejs,这意味着将其作为子进程。

这是常见的方式。 然而,您可以在两个容器之间共享pid 命名空间,但您也需要在同一个镜像中安装 nodejs。所以到那时,这变得很棘手。

【讨论】:

  • 好的,知道了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-02-18
  • 2016-06-20
  • 1970-01-01
  • 2017-12-18
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-12-19
相关资源
最近更新 更多