依次运行两个docker-compose文件,tiangolo映像

时间:2018-10-04 12:20:35

标签: docker docker-compose docker-image

我是docker的新手,所以我找到了这个映像,该映像已预安装flask-uwsgi-nginx,并使用以下命令运行它:

docker-compose -f docker-compose.yml -f docker-compose.override.yml up

docker-compose.yml

version: '3'
  services:
    web:
      build: ./

docker-compose.override.yml

version: '3'
 services:
  web:
   volumes:
    - ./app:/app
    - /var/run/docker.sock:/var/run/docker.sock
   ports:
    - "80:80"
   environment:
    - FLASK_APP=app/main.py
    - FLASK_DEBUG=1
    - 'RUN=flask run --host=0.0.0.0 --port=80'

我的问题是,我真的需要使用两个撰写文件来运行它吗?如果是这样,为什么?

1 个答案:

答案 0 :(得分:1)

您不必使用两个文件。您可以将这两个文件合并为一个,然后使用它。

第二个文件将覆盖第一个文件中已经存在的设置。在某些情况下这可能很有用。您可以使用不同的“覆盖”文件来测试不同的设置。

例如,您正在开发一个Web应用程序。此网络应用具有常规配置,在任何情况下均有效。这些配置将位于docker-compose.yml中。现在,您可以在“开发模式”下的开发过程中启动它。此模式具有一些您通过docker-compose.dev.yml传递的配置。您使用这两个文件启动应用程序,并且可以在本地工作。完成工作后,您想在“生产模式”下测试您的应用程序。此模式的所有配置都位于另一个文件docker-compose.prod.yml中。现在,您只需在-f中交换第二个docker-compose up参数即可以这种模式启动应用程序。

文件名docker-compose.ymldocker-compose.override.yml不是必需的。如果存在这些文件,则默认使用它们。