我的文件夹结构如下所示
- root-dir
-- docker
-- src //contains laravel application
---.env
-- docker-compose.yml
正如您在laravel .env和docker-compose.yml文件中所知,您需要指定db的连接设置
// .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
// docker-compose.yml
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=homestead
- MYSQL_USER=homestead
- MYSQL_PASSWORD=secret
有没有办法让docker-compose“读取”.env文件中的设置,因为最后一个没有被git跟踪?所以基本上如果我必须更改设置,我必须只在一个文件中执行它,也不要在git上跟踪docker-compose.yml的凭据
答案 0 :(得分:1)
你可以这样做(来自docker documentation https://docs.docker.com/compose/environment-variables/#the-env-file):
“。env”文件 您可以在Compose文件中引用的任何环境变量的默认值,或用于配置Compose,在名为.env的环境文件中:
$ cat .env
TAG=v1.5
$ cat docker-compose.yml
version: '3'
services:
web:
image: "webapp:${TAG}"
您也可以使用:
“env_file”配置选项 您可以使用'env_file'选项将多个环境变量从外部文件传递到服务的容器,就像使用docker run --env-file = FILE ...:
一样web:
env_file:
- web-variables.env