我正在使用docker-compose进行laravel项目和nginx。
这是我的docker-compose.yml:
version: '2'
services:
backend:
image: my_image
depends_on:
- elastic
- mysql
mysql:
image: mysql:8.0.0
nginx:
depends_on:
- backend
image: my_image
ports:
- 81:80
所以,我的Laravel项目位于容器后端,如果我运行命令:docker-compose up -d
它没关系,所有容器都已创建,我的项目在端口81上运行。
我的问题是,在我的容器后端的Laravel项目中,我有一个.env
文件,其中包含数据库登录名,密码和其他内容。
如何在docker-compose up
之后编辑此文件?直接在容器中不是一个好主意,有没有办法将容器外的文件与docker-compose链接?
由于
答案 0 :(得分:1)
一种方法是在docker-compose.yml上使用'env_file'指令,在那里你可以放置一个将导出到容器中的键值对列表。例如:
web:
image: nginx:latest
env_file:
- .env
ports:
- "8181:80"
volumes:
- ./code:/code
然后,您可以将应用程序配置为使用这些env值 这种方法的一个优点是,如果您更改任何值或添加新值,则需要重新创建容器(docker-compose down&& docker-compose up -d)。