2017-01-20 46 views
0

我正在使用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

一种方法,这是用“env_file”指令的搬运工,compose.yml,在那里你可以把将要导出到容器键值对的列表。例如:

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

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

相关问题