运行两个docker-依次合成文件,tiangolo图片
Run two docker-compose files one after another, tiangolo 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'
我的问题是,我真的需要 运行 使用两个撰写文件吗?如果是,为什么?
您不必使用两个文件。您可以将这两个文件合并为一个文件并使用它。
第二个文件覆盖第一个文件中已有的设置。这在某些情况下很有用。您可以使用不同的 "overwrite" 文件来测试不同的设置。
例如,您正在开发一个网络应用程序。此 Web 应用程序具有在任何情况下都有效的常规配置。这些配置将在 docker-compose.yml
中。现在您在 "dev mode" 的开发过程中启动它。此模式有一些您通过 docker-compose.dev.yml
传递的配置。您可以使用这两个文件启动您的应用程序,并且可以在本地运行。完成工作后,您想在 "production mode" 中测试您的应用。此模式的所有配置都位于另一个文件中,即 docker-compose.prod.yml
。您现在可以在此模式下启动应用程序,只需交换 docker-compose up
.
中的第二个 -f
参数
文件名 docker-compose.yml
和 docker-compose.override.yml
不是强制性的。如果存在这些文件,则默认使用它们。
我是 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'
我的问题是,我真的需要 运行 使用两个撰写文件吗?如果是,为什么?
您不必使用两个文件。您可以将这两个文件合并为一个文件并使用它。
第二个文件覆盖第一个文件中已有的设置。这在某些情况下很有用。您可以使用不同的 "overwrite" 文件来测试不同的设置。
例如,您正在开发一个网络应用程序。此 Web 应用程序具有在任何情况下都有效的常规配置。这些配置将在 docker-compose.yml
中。现在您在 "dev mode" 的开发过程中启动它。此模式有一些您通过 docker-compose.dev.yml
传递的配置。您可以使用这两个文件启动您的应用程序,并且可以在本地运行。完成工作后,您想在 "production mode" 中测试您的应用。此模式的所有配置都位于另一个文件中,即 docker-compose.prod.yml
。您现在可以在此模式下启动应用程序,只需交换 docker-compose up
.
-f
参数
文件名 docker-compose.yml
和 docker-compose.override.yml
不是强制性的。如果存在这些文件,则默认使用它们。