DB_HOST указан в виде названия контейнера для автоматического преобразования в IP-адрес.
Сам адрес доходит до приложения ларавел примерно через десять секунд, после запуска php artisan serve.
При этом, если выводить переменные окружения через echo, то они выводятся в docker logs. То есть, сам контейнер успешно загружает их, это проблемы либо с ларавел, либо с внутрисетевым взаимодействием контейнеров.
Я:
- чистил кеш конфига
- чистил кеш конфига и кешировал его обратно
- использовал статический адрес для db-service-container
- менял образы сервиса
- использовал пустые переменные .env
- использовал заполненные переменные .env
- использовал переменные в docker-compose.yml
version: '3.8'
services:
db-service:
image: mysql/mysql-server:8.0
container_name: db-service-container
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
app:
build: .
container_name: app-container
ports:
- 8000:8000
command: bash -c "php artisan serve --host 0.0.0.0"
depends_on:
- db-service
volumes:
- .:/var/www/html