nin*_*dev 5 environment-variables symfony docker
我想将配置参数从 docker-compose 文件传递到我的 Symfony 应用程序,我试过这个:
app:
image: <NGINX + PHP-FPM IMAGE>
environment:
DATABASE_HOST: db
Run Code Online (Sandbox Code Playgroud)
我的 parameters.yml 文件:
database_host: "%env(DATABASE_HOST)%"
Run Code Online (Sandbox Code Playgroud)
我收到错误 500“找不到环境变量:DATABASE_HOST”
我也在 docker-compose 中尝试了 SYMFONY__DATABASE_HOST 但也没有工作。
它是如何工作的?
您收到的错误涉及 Symfony 运行时环境变量(请参阅此处)。Docker compose 环境变量是从驻留在文件的构建上下文(也称为您希望docker-compose运行的.env目录)内的文件中检索的。你真正想要做的是确保你在 Symfony 配置/参数中设置的环境变量与你的文件匹配,尤其是 db host。docker-compose.ymldocker-compose.yml
您应该考虑将映像分解为 PHP-FPM 和 Nginx 映像,以便根据 Docker此处概述的最佳实践获得更好的潜在可扩展性和关注点分离。所有这些技术都在Docker Hub上提供定期维护的映像。
这是我docker-compose.yml在多容器环境中为 PHP-FPM、MySQL 和 Nginx 创建容器的过程,其中包含今天可用的最新稳定包。
version: '3'
services:
db:
image: mysql
volumes:
- ./.data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
php:
build: php7.1-fpm
depends_on:
- db
ports:
- "9000:9000"
volumes:
- symfony-bind-mount:/var/www/symfony
- symfony-logs-bind-mount:/var/www/symfony/app/logs
nginx:
build: nginx
depends_on:
- php
ports:
- "8025:8025"
- "80:80"
volumes:
- symfony-bind-mount:/var/www/symfony
- nginx-logs-bind-mount:/var/log/nginx
volumes:
symfony-bind-mount:
driver: local
driver_opts:
o: bind,rw
type: none
device: ${SYMFONY_APP_PATH}
nginx-logs-bind-mount:
driver: local
driver_opts:
o: bind,rw
type: none
device: ${DOCKER_SYMFONY_PATH}/logs/nginx
symfony-logs-bind-mount:
driver: local
driver_opts:
o: bind,rw
type: none
device: ${DOCKER_SYMFONY_PATH}/logs/symfony
Run Code Online (Sandbox Code Playgroud)
这是我的 .env 文件:
# Symfony application's path
SYMFONY_APP_PATH=/absolute/path/to/symfony/project
# Path to local docker-symfony repository
DOCKER_SYMFONY_PATH=/absolute/path/to/sibling/docker/directory
# MySQL
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=mydb
MYSQL_USER=
MYSQL_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看我的 maxpou docker-symfony 存储库的分支。我已更新 docker-compose.yml 和绑定挂载,以与 Compose 文件格式的版本 3 兼容。
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |