Docker构成,将容器外的文件链接起来

我正在用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没关系,所有容器都被创build,我的项目在端口81上运行。

我的问题是,在我的容器后端Laravel项目中,我有一个.env文件与数据库login,密码和其他东西。

docker-compose up之后如何编辑这个文件? 直接在容器中是不是一个好主意,有没有办法链接文件外的一个容器与docker组成?

谢谢

一种方法是在docker-compose.yml上使用'env_file'指令,在那里可以放置一个键值对的列表,这些键值对将被导出到容器中。 例如:

 web: image: nginx:latest env_file: - .env ports: - "8181:80" volumes: - ./code:/code 

然后你可以configuration你的应用程序来使用这些env值。
这种方法的一个问题是,如果您更改任何值或添加新的容器,则需要重新创build容器(docker-compose down && docker-compose up -d)。