Я новичок в Docker и у меня возникли некоторые проблемы с сетью. Из того, что я понимаю, мне нужно выставить порты, которые я хочу открыть, в каждом контейнере, с которым мне нужно связаться. Я пытаюсь сделать так, чтобы в одном контейнере была MariaDB, а в другом - приложение PHP Laravel, где оба общаются только на моем локальном хосте. Ниже мой DockerFile. Могу ли я дать совет о том, что я делаю неправильно? Код PHP, особенно составитель, когда он пытается инициировать базу данных, получает ошибку отказа в доступе, несмотря на то, что файл PHP .env копируется в соответствии с учетными данными того, что я предоставляю MariaDB для использования. Я пытаюсь скомпилировать это, используя: docker image build -t testbuild .
Я должен также упомянуть, что я попытался переключиться на localhost и 127.0.0.1 во всех моих файлах ENV и локальной конфигурации безрезультатно. Я не уверен, что это лучший способ сделать это или если файл Docker Compose .yml лучше. Подобные вопросы используют файлы yml, но мне может понадобиться совет о том, является ли это правильным путем или лучше стиль, представленный ниже.
FROM mariadb:10.1
ENV MYSQL_ROOT_PASSWORD testrootpassword
ENV MYSQL_HOST 127.0.0.1
ENV MYSQL_DATABASE testdb
ENV MYSQL_USER testuser
ENV MYSQL_PASSWORD testpw
EXPOSE 80
EXPOSE 443
EXPOSE 8000
EXPOSE 3306
CMD ["mysqld"]
# Do PHP + Apache Setup:
FROM php:7.2-apache
EXPOSE 80
EXPOSE 443
EXPOSE 8000
EXPOSE 3306
#Other PHP app setup things....
COPY composer.lock composer.lock
COPY composer.json composer.json
COPY .env .env
#COPY for other project files, then:
RUN composer command_that_starts_the_db_setup
#Command starts here but gets access denied when trying to connect to MariaDB on 127.0.0.1.