Выполнить шеллскрипт в связанном контейнере после завершения импорта из MySQL - PullRequest
0 голосов
/ 31 октября 2019

В моем Dockerfile я использую эти две строки для копирования 3 дампов mysql в папке Folder и выполнения сценария оболочки:

ADD dumps /docker-entrypoint-initdb.d/
COPY echo.sh /docker-entrypoint-initdb.d/9echo.sh

Это работает нормально, но я ищу способ теперь вызватьсценарий в связанном контейнере PHP

version: '3.5'

services:
  db:
    build: mysql
    environment:
      MYSQL_ROOT_PASSWORD: app
      MYSQL_USER: app
      MYSQL_PASSWORD: app
      MYSQL_DATABASE: app
    expose:
      - 3360
    networks:
      - traefik_traefik
    restart: ${RESTART}
  php73:
    build:
      context: ./php
      args:
        feature_tag: ${CONTAINER_PREFIX}
    links:
      - db
    depends_on:
      - db
    networks:
      - traefik_traefik
    labels:
      - "traefik.http.routers.${CONTAINER_PREFIX}_php73.rule=Host(${URLS})"
      - "traefik.http.middlewares.thisauth.basicauth.users=swiss:$$apr1$$nb9MT1Rk$$swy9fdsfcz8YFXYdzwBwR1"
      - "traefik.http.routers.${CONTAINER_PREFIX}_php73.middlewares=thisauth@docker"

Потому что я могу вызывать этот сценарий только тогда, когда БД полностью загружена необходимыми данными. В противном случае PHP-код не будет работать.

Есть ли после инициализации сценарий вызова, который я могу использовать в docker-compose или Dockerfile?

1 Ответ

0 голосов
/ 31 октября 2019

Я не уверен, что это то, что вы имели в виду, но если вы хотите вызвать скрипт оболочки после того, как DB и php запущены, вы можете изменить docker-compose.yml следующим образом:

  php73:
    build:
      context: ./php
      args:
        feature_tag: ${CONTAINER_PREFIX}
    links:
      - db
    depends_on:
      - db
    networks:
      - traefik_traefik
    labels:
      - "traefik.http.routers.${CONTAINER_PREFIX}_php73.rule=Host(${URLS})"
      - "traefik.http.middlewares.thisauth.basicauth.users=swiss:$$apr1$$nb9MT1Rk$$swy9fdsfcz8YFXYdzwBwR1"
      - "traefik.http.routers.${CONTAINER_PREFIX}_php73.middlewares=thisauth@docker"
    command: sh -c ' bash script.sh'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...