繁体   English   中英

docker-compose 不运行命令

[英]docker-compose not running commands

我有这样的docker-compose:

web:
  build: ../../
  dockerfile: environments/production/Dockerfile
  links:
      - fpm:fpm
      - redis:redis
      - elasticsearch:elasticsearch
      - beanstalkd:beanstalkd
  volumes:
      - /var/cache/nginx
      - ../../:/app:ro
...
composer:
  image: imega/composer
  volumes:
    - ../../:/data
  command: ["install"]
node:
  image: node:slim
  volumes:
    - ../../:/app
  working_dir: /app
  entrypoint: npm
  command: ["install"]

目标是在构建时安装 composer 和 node deps。 理论上它应该可以工作,但实际上用容器定义编写的命令不会执行。 任何命令。 我试过在那里运行 'echo' 或 'ls 。 - 没有。

任何想法为什么?

我认为你在这里误解了几件事:

  • 您正在运行npm install以在卷中安装依赖项,然后该卷由您的应用程序容器使用。 这不包含应用程序映像中的任何依赖项。 虽然这可能有效,但这意味着该图像并不能真正独立运行。 当您将此映像交付到生产环境时,您违反了“此应用程序与开发相同”的合同。 请注意这一点。
  • 您正在将npm install作为最终退出的服务运行。 当命令退出时,容器停止。 此外, web服务(可能依赖于这些依赖项)可能会在npm install完成之前启动。

您是否有理由不想将composer installnpm install作为应用程序构建过程的一部分?

不要使用命令:[“安装”]

尝试:

命令:安装

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM