наследование dockerfile и команды RUN - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь создать dockerfile для сборки сервера LAMP для разработки с использованием базы alpine-lamp.

FROM glats/alpine-lamp
ENV MYSQL_ROOT_PASSWORD=password
RUN apk add wget && \
    apk add php7-simplexml && \
    mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS mydb"

Когда я запускаю команду docker image build -t testing . для создания моего образа, я получаю сообщение об ошибке:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

Моя команда mysql выполняется до того, как "родительский" файл docker имеет завершен бег? Я смог удалить эти строки и запустить контейнер, а затем запустить идентичную команду mysql из cli, поэтому я думаю, что серверная часть mysql родительского стека ламп просто не запустилась полностью , Есть ли способ обеспечить выполнение моих команд после родительского?

1 Ответ

0 голосов
/ 21 марта 2020

Во время создания образа mysql не будет работать. Вот почему вы видите сообщение об ошибке о невозможности подключения.

Этот тип вещи не следует запускать во время сборки. Вместо этого поместите инициализацию базы данных в скрипт точки входа.

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