因为我使用docker
和docker-compose
而不是Homestead
和任何基于Vargrant
的开发解决方案,所以我想避免与laravel在使用{{ 1}}文件。因此,我希望Laravel不要查找该文件,而是从环境变量中获取所需的设置数据。
那么如何指定,配置laravel 不以查找.env
文件?如果不可能,如何更改文件名以搜索环境变量和设置?
.env
位于项目的根文件夹中。
我的docker-compose.yml
是:
docker-compose.yml
因此,在aoproach一次性应用全局方法中需要进行全局设置。例如,我根本不希望我的laravel应用程序完全可以访问version: '3.1'
services:
develop:
image: ddesyllas/php-dev:${TAG}
volumes:
- ".:/var/www/html"
links:
- memcache
environment:
DB_CONNECTION: postgresql
DB_HOST : postgresql
DB_PORT : 5432
DB_DATABASE: ${DOCKER_POSTGRES_DB}
DB_USERNAME: ${DOCKER_POSTGRES_USER}
DB_PASSWORD: ${DOCKER_POSTGRES_PASSWORD}
nginx:
image: nginx:alpine
ports:
- 7880:7880
links:
- "develop:develop"
volumes:
- ".:/var/www/html"
- "./docker/nginx.conf:/etc/nginx/nginx.conf:ro"
postgresql:
image: postgres:alpine
volumes:
- './docker/misc_volumes/postgresql:/var/lib/postgresql/data'
environment:
POSTGRES_USER: ${DOCKER_POSTGRES_USER}
POSTGRES_DB: ${DOCKER_POSTGRES_DB}
POSTGRES_PASSWORD: ${DOCKER_POSTGRES_PASSWORD}
memcache:
image: memcached:alpine
环境变量。
答案 0 :(得分:4)
在您的docker-compose.yml
中,您可以指定与env_file
不同的.env
,例如:
version: "3.1"
services:
webserver:
image: nginx:alpine
restart: always
container_name: laravel-webserver
working_dir: /application
env_file:
- .env_docker
networks:
- intranet
networks:
intranet:
external: false
此处docker-compose.yml
将使用.env_docker
而不是.env
已编辑:
如果您想为Laravel .env
使用不同的文件,则可以更改volumns
部分以指定Like:
volumes:
- ".:/var/www/html"
- "./docker/nginx.conf:/etc/nginx/nginx.conf:ro"
- "/<path to your different env file>:/var/www/html/.env"