Мультиконтейнерное приложение с пользовательскими изображениями из Docker Hub - PullRequest
0 голосов
/ 21 октября 2019

У меня есть многоконтейнерное приложение для создания докеров (WordPress + MySQL), которым я хочу поделиться с разработчиком в центре обработки данных. Приложение будет запускаться оттуда (это будет общедоступный сайт), но у меня не будет прямого доступа к развертыванию. Поэтому я собираюсь отправить изображения в Docker Hub и предоставить разработчику вопрос с файлом docker-compose.yml. Сайт статичен, после его запуска никакие добавления, пользовательские записи или комментарии не будут добавлены. В чем я не уверен, так это в том, сколько изображений мне нужно нажать - очевидно, это пользовательское изображение WordPress со всем моим добавленным контентом, но я должен также толкать изображение MySQL? Это будет иметь все данные в виде текста с каждой страницы, ссылок и т. Д. Я буду запускать приложение через nginx-proxy, поэтому добавлю это также в файл compose.

Это докер-файл compose для создания исходных изображений:

version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - ./db/initdb.d:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: some_root_password
      MYSQL_DATABASE: some_db
      MYSQL_USER: some_user
      MYSQL_PASSWORD: some_password

  wordpress-app:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    expose:
      - "80"
    environment:
      - VIRTUAL_PORT=80
      - VIRTUAL_HOST=example.org,example.com,example.local
    volumes:
      - ./wp:/var/www/html

networks:
  default:
    external:
      name: mynetwork

Поэтому я подумал, что файл docker-compose, который мне нужно предоставить, должен выглядеть примерно так:

version: '3'

services:
  db:
    image: myrepo/mydb
    restart: always

  wordpress-app:
    depends_on:
      - db
    image: myrepo/app
    restart: always

  nginx-proxy:
    image: jwilder/nginx-proxy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  whoami:
    image: jwilder/whoami
    environment:
      - VIRTUAL_HOST=whoami.local

networks:
  default:
    external:
      name: mynetwork

Думаю, мне тоже нужнопредоставить там информацию о портах и ​​хостах? А может быть, объемы?

В моей голове возникла мысль, что я просто нажму на одно изображение, но я предполагаю, что с учетом конфигурации мне нужны два пользовательских изображения - WordPress и MySQL db.

Спасибо за любые разъяснения по ним.

...