Выполнить команду после docker-compose для одного изображения - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть docker-compose.yml, который выглядит следующим образом:

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql2
     restart: always
     ports:
         - "3306:3306"
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wptest
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     volumes:
         - ./site/:/var/www/html/
         - ~/playground/certs/:/etc/ssl/certs/
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_NAME: wptest
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress

volumes:
    db_data:

Он работает, и моя установка WordPress в порядке - за исключением того факта, что в сертификате есть самоподписанный сертификат.перемешать.Поэтому, когда я пытаюсь обновить мою установку WordPress или что-то в этом роде, происходит сбой (то же самое с плагинами).

Если я попадаю в оболочку bash контейнера и запускаю update-ca-certificates, он находит мои ключи и устанавливает их, а затемЯ могу запускать обновления без проблем.

У меня такой вопрос - могу ли я автоматизировать это, чтобы он автоматически загружал мои сертификаты и запускал команду после того, как контейнер был запущен, в то же время позволяя мне использовать docker-compose up?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете создать простой Dockerfile, который извлекает из образа wordpress и добавить команду RUN с чем угодно.

FROM wordpress:latest

RUN your-command-here

И затем изменить ваш docker-compose, чтобы использовать этот новый образ вместоофициальный WordPress один, вероятно, что-то вроде: (обратите внимание на аргументы сборки)

   wordpress:
     volumes:
         - ./site/:/var/www/html/
         - ~/playground/certs/:/etc/ssl/certs/
     depends_on:
       - db
     build:
      context: .
      dockerfile: ./Dockerfile
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_NAME: wptest
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...