2015-08-25 5 views
0

Я использую docker-compose и yml-файл для запуска контейнера. Есть два сценария в package.json я хочу назвать:Docker-compose running multiple scripts

"dev-start": "nodemon src/index.js", 
"dev-migrate": "db-migrate --migrations-dir src/migrations --config src/database.json up" 

Для вызова одного я использую команду: имя сценария, как я могу назвать более одного сценария?

+0

использование 'Команда: Баш -c' http://stackoverflow.com/questions/ 30063907/use-docker-compose-how-to-execute-multiple-commands –

+0

use 'команда: bash -c' http://stackoverflow.com/questions/30063907/using-docker-compose-how- к-выполнить несколько команд- –

ответ

0

Если вы хотите, чтобы запускал миграцию, пока приложение работает, используйте docker exec -it name-of-container bash, чтобы открыть оболочку в запущенном контейнере и выполнить команду.

Если вам необходимо запустить миграцию до первого запуска приложения, запустите docker-compose run name-of-service bash, выполнить команду, инициализировать базу данных, выход и запуск docker-compose нормально.

Если вы хотите до выполнить миграцию перед каждым запуском приложения, вы можете написать сценарий оболочки, который выполняет как действия (перенос, так и запуск приложения), скопировать его в изображение и называть его как команду по умолчанию ,


Для 2 первых пунктов, вы можете также непосредственно запустить команду миграции вместо запуска bash