Docker撰写,链接容器外的文件

时间:2017-01-20 12:37:42

标签: laravel nginx 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它没关系,所有容器都已创建,我的项目在端口81上运行。

我的问题是,在我的容器后端的Laravel项目中,我有一个.env文件,其中包含数据库登录名,密码和其他内容。

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

由于

1 个答案:

答案 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)。