Получите docker-compose, чтобы запускать только определенные контейнеры - PullRequest
2 голосов
/ 14 апреля 2019

Так что в настоящее время я могу использовать «docker-compose up test», который запускает только мою базу данных и мои сценарии тестирования.Я хочу, чтобы мы могли сказать «приложение для создания докеров» или что-то в этом роде, которое выполняет все, кроме тестирования. Таким образом, я не запускаю ненужные контейнеры. Я не уверен, что есть ли способ, но это то, что мне было интересно. Если возможно, я был бы признателеннекоторые ссылки на некоторые, которые уже делают это, и я могу выяснить остальное. По сути, я могу запускать только определенные контейнеры с помощью одной команды без запуска других.

Yaml

version: '3'
services:
  webapp:
    build: ./literate-app 
    command: nodemon -e vue,js,css start.js
    depends_on:
      - postgres
    links:
      - postgres
    environment:
      - DB_HOST=postgres
    ports:
     - "3000:3000"
    networks:
      - literate-net


  server:
    build: ./readability-server
    command: nodemon -L --inspect=0.0.0.0:5555 server.js
    networks:
      - literate-net


  redis_db:
    image: redis:alpine
    networks:
      - literate-net


  postgres:
    restart: 'always'
    #image: 'bitnami/postgresql:latest'
    volumes:
     - /bitnami
    ports:
      - "5432:5432"
    networks:
      - literate-net
    environment:
      - "FILLA_DB_USER=my_user"
      - "FILLA_DB_PASSWORD=password123"
      - "FILLA_DB_DATABASE=my_database"
      - "POSTGRES_PASSWORD=password123"
    build: './database-creation'


  test: 
    image: node:latest
    build: ./test
    working_dir: /literate-app/test
    volumes:
      - .:/literate-app
    command:
      npm run mocha
    networks:
      - literate-net
    depends_on:
      - postgres
    environment:
      - DB_HOST=postgres


networks:
  literate-net:
    driver: bridge

Я могузапустить docker-compose up test

, который запускает только postgres. Хотя я хотел бы иметь возможность просто запускать мое приложение без необходимости запуска моего тестового контейнера.

Редактировать

Спасибо @ideam за ссылку

Мне удалось создать дополнительный файл yaml для простого тестирования. Для тех, кто не хочет его искать, просто создайте новый файл yaml, например:поэтому

docker-compose.dev.yml

замените dev на что угодно, кроме переопределения, которое заставляет docker-compose автоматически запускать это, еслив противном случае

Чтобы запустить новый файл, просто наберите

docker-compose -f docker-compose.dev.yml up

-f - это флаг для выбора определенногофайл для запуска.Вы можете запустить несколько файлов, чтобы иметь различные настройки среды

Оцените помощь

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

docker-compose up <service_name> запустит только указанную вами службу и ее зависимости.(указанные в опции dependends_on.)

Вы также можете определить несколько служб в команде docker-compose up:

docker-compose up <service_name> <service_name>

note- что означает «запустить службу и ее зависимости»?

обычно ваши производственные службы (контейнеры) связаны друг с другом через цепочку dependes_on, поэтому вы можете запускать только последние контейнерыцепи.например, возьмите следующий файл compose:

version: '3.7'
services:
  frontend:
    image: efrat19/vuejs
    ports:
      - "80:8080"
    depends_on:
       - backend
  backend:
    image: nginx:alpine
    depends_on: 
      - fpm
  fpm:
    image: php:7.2
  testing:
    image: hze∂ƒxhbd
    depends_on:
      - frontend

все сервисы объединены в опцию depends_on, в то время как тестируемый контейнер находится ниже внешнего интерфейса.поэтому, когда вы нажмете docker-compose up frontend, docker сначала запустит fpm, затем бэкэнд, затем внешний интерфейс и проигнорирует тестовый контейнер, который не требуется для запуска внешнего интерфейса.

1 голос
/ 14 апреля 2019

Может быть, вы хотите поделиться своим docker-compose.yml для лучшего ответа, чем этот.

Для повторного использования конфигураций docker-compose посмотрите https://docs.docker.com/compose/extends/#example-use-case, который объясняет комбинацию нескольких файлов конфигурации для повторного использования конфигураций для различных вариантов использования (тестирование, изготовление и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...