Docker Compose,如何在容器外部链接文件?

3

我正在使用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 外部链接起来?

谢谢

1个回答

2

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

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

然后,您可以配置应用程序使用这些环境值。
使用此方法的一个注意点是,如果更改任何值或添加新值,则需要重新创建容器(docker-compose down && docker-compose up -d)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接