docker -компонентный запуск не запускает сценарии точки входа зависимых сервисов - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь выполнить однократную команду в контейнере приложения с помощью команды

docker-compose run --entrypoint="/usr/src/app/migrate.sh" app

app - это имя моей службы, и указанная точка входа содержит единовременную команду, которую я ' Я пытаюсь бежать. Вот мой docker -compose.yml файл

version: '3'
services:
  app:
    build: .
    # mount the current directory (on the host) to /usr/src/app on the container, any changes in either would be reflected in both the host and the container
    volumes:
      - .:/usr/src/app
    # expose application on localhost:36081
    ports:
      - "36081:36081"
    # application restarts if stops for any reason - required for the container to restart when the application fails to start due to the database containers not being ready
    restart: always
    depends_on:
      - db1
      - db2
    # the environment variables are used in docker/config/env_config.rb to connect to different database containers
    environment:
      MYSQL_DB1_HOST: db1
      MYSQL_DB1_PORT: 3306
      MYSQL_DB2_HOST: db2
      MYSQL_DB2_PORT: 3306
  db1:
    image: mysql/mysql-server:5.7
    environment: 
      MYSQL_DATABASE: test1
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    # mount volume of the schema script to /docker-entrypoint-initdb.d to execute the script on startup  
    volumes:
      - ./docker/seed/db1:/docker-entrypoint-initdb.d
      - db1-volume:/var/lib/mysql
    restart: always
    # to connect locally from SequelPro
    ports:
      - "1200:3306"
  db2:
    image: mysql/mysql-server:5.7
    environment: 
      MYSQL_DATABASE: test2
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    # mount volume of the schema script to /docker-entrypoint-initdb.d to execute the script on startup  
    volumes:
      - ./docker/seed/db2:/docker-entrypoint-initdb.d
      - db2-volume:/var/lib/mysql
    restart: always
    # to connect locally from SequelPro
    ports:
      - "1201:3306"

Когда я запускаю docker-compose up, все работает как положено, но когда я вызываю docker-compose run, зависимые сервисы db1 и db2 контейнеры вверх, но они не инициализируются сценарием точки входа (в результате база данных mySQL не создается). Объем прилагается, хотя. Как я могу гарантировать, что сценарий точки входа зависимых контейнеров также вызывается?

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