Laravel指定与`.env`不同的名称或使ingore`.env`不与docker和docker-compose

时间:2019-06-20 09:15:42

标签: laravel docker docker-compose

因为我使用dockerdocker-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 环境变量。

1 个答案:

答案 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"