У меня есть такой 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 и узел deps при сборке. И это должно работать теоретически, но на самом деле команда, записанная в определении контейнеров, не выполняется. Любая команда. Я пытался запустить «эхо» или «ls». — ничего такого.
Есть идеи почему?
Я думаю, что вы неправильно понимаете пару вещей здесь:
npm install
установить зависимости в томе, а затем том будет использован вашим приложением контейнера. Это не содержит каких-либо зависимостей в образе приложения. Хотя это может работать, это означает, что изображение на самом деле не работает само по себе. Когда вы отправляете это изображение в производство, вы нарушаете контракт, в котором говорится, что «это приложение похоже на разработку». Помните об этом.npm install
как услуга, которая в конечном итоге выйдет. Когда команда завершается, контейнер останавливается. Более того, web
служба (которая, вероятно, зависит от этих зависимостей) может запускаться до npm install
закончилЕсть ли причина, по которой вы не хотите иметь composer install
а также npm install
как часть процесса сборки вашего приложения?
не используйте команду: [«install»]
пытаться:
команда: установить