[英]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 install
和npm install
作为应用程序构建过程的一部分?
不要使用命令:[“安装”]
尝试:
命令:安装
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.