RUN echo в Dockerfile с ошибкой docker-compose - PullRequest
0 голосов
/ 11 сентября 2018

Итак, у меня есть следующий файл docker-compose:

version: "3"

services:
  webserver:
    build: 
      context: ./bin/webserver
    container_name: 'png-webserver'
    restart: 'always'
    ports:
      - "18011:80"
      - "14431:443"
    links: 
      - mysql
    volumes: 
      - ${DOCUMENT_ROOT-./www}:/var/www/html
      - ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini
      - ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
      - ${LOG_DIR-./logs/apache2}:/var/log/apache2
  mysql:
    build: ./bin/mysql
    container_name: 'png-mysql'
    restart: 'always'
    ports:
      - "13306:3306"
    volumes: 
      - ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql
      - ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql
      - ./mysqlhome:/home
    environment:
      MYSQL_ROOT_PASSWORD: tiger
      MYSQL_DATABASE: nubuilder
      MYSQL_USER: deckoff
      MYSQL_PASSWORD: deeppurple
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'png-phpmyadmin'
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
    ports:
      - '18080:80'
    volumes: 
      - /sessions

И следующий Dockerfile (для контейнера mariadb):

FROM mariadb:10.1

RUN mysql --defaults-extra-file='/home/secret' nubuilder4 < /home/nubuilder4.sql

RUN apt-get update && apt-get install -y nano 

RUN bash -c 'echo [mysqld] >> /etc/mysql/my.cnf'
RUN bash -c 'echo sql-mode=NO_ENGINE_SUBSTITUTION >> /etc/mysql/my.cnf'

В двух словах - кажется, что команды RUN в Dockerfile никогда не запускаются. Я ожидал, что 2 файла выложены в файл, а nano установлен, но ничего из этого не происходит. Я попытался запустить их после запуска контейнеров, и они работают нормально. Похоже, я делаю что-то не так.

Кроме того, я понятия не имею, как отладить это.

1 Ответ

0 голосов
/ 11 сентября 2018

Команды RUN для установки линий nano и echo в файлы кажутся правильными.Скорее всего, проблема в RUN mysql --defaults-extra-file='/home/secret' nubuilder4 < /home/nubuilder4.sql

Поскольку вы монтируете том / дом, мы не можем отладить его.Вы уверены, что эта команда RUN mysql ... успешно прошла?

Для отладки: измените ваш docker-compose.yml вместо build: ./bin/mysql, используйте image: mariadb: 10.1, затем подключитесь к контейнеру и выполните первую команду с помощью mysql.

...