У меня есть Dockerfile, основанный на php:alpine
и я пытаюсь добавить MySQL в сборку.
FROM php:alpine
COPY test-data/ /var/www/
RUN apk add --update --no-cache \
mysql
# Composer
RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer
ENV COMPOSER_ALLOW_SUPERUSER=1
WORKDIR /var/www
Моя проблема в том, что после успешной сборки я попытался запустить контейнер с переопределением среды mysql, но не могу войти в mysql внутри контейнера.
$ docker run -e MYSQL_DATABASE=homestead -e MYSQL_USER=homestead -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=secret -ti --rm idecardo /bin/sh
Проверка входа в MySQL не удалась
$ mysql -uroot -p # with password "secret"
Поскольку вы новичок — всегда старайтесь учиться, копируя готовый рабочий код и разбивая то, что делается в этом коде.
Для докера:
В общем:
Так как вы хотите, чтобы php и mysql работали из docker, я советую вам узнать о docker-compose. Docker-контейнеры можно запускать различными способами, а docker-compose позволяет запускать несколько Docker-контейнеров, совместно использовать некоторые папки между ними. В этом сценарии вы захотите запустить отдельный контейнер MySQL и отдельный контейнер PHP, разделить между собой папки с данными хоста и запустить свой код.
Кроме того, посмотрите некоторые видеоуроки онлайн — они подробно объясняют основы того, что такое докер и как он работает.
Других решений пока нет …