Ответ 1
Вы можете запускать контейнеры, используя:
$ docker-compose up -d client
Это приведет к запуску контейнеров в фоновом режиме, и вывод будет доступен из
$ docker-compose logs
и он будет состоять из всех загруженных вами контейнеров.
У меня есть docker-compose.yml
, который содержит несколько контейнеров. Три из них предназначены для моего приложения (клиент, сервер и база данных), а остальные - для различных инструментов dev (например, psql, npm, manage.py и т.д.). Когда я делаю docker-compose up
, все они запускаются, но я хочу, чтобы начались только три основных. Из-за ссылок, которые я указал, я могу запустить только эти три с помощью docker-compose up client
, но затем вывод будет только из одного контейнера. Итак, есть ли способ сделать одно из следующего:
docker-compose up
docker-compose up client
Вы можете запускать контейнеры, используя:
$ docker-compose up -d client
Это приведет к запуску контейнеров в фоновом режиме, и вывод будет доступен из
$ docker-compose logs
и он будет состоять из всех загруженных вами контейнеров.
Обычно вы этого не хотите. С помощью Docker Compose вы определяете службы, которые составляют ваше приложение. npm
и manage.py
являются только командами управления. Им не нужен контейнер для них. Если вам нужно, скажем, создать таблицы базы данных с помощью manage.py
, все, что вам нужно сделать, это:
docker-compose run client python manage.py create_db
Подумайте об этом как о разовом диносе, используемом Heroku.
Если вам действительно нужно рассматривать эти команды управления как отдельные контейнеры (а также использовать Docker Compose для них), вы можете создать отдельный файл .yml
и запустить Docker Compose со следующей командой:
docker-compose up -f my_custom_docker_compose.yml