zur*_*fyx 4 environment docker docker-compose
Docker Compose 文档及其示例用例非常适合用于分析不同工作环境(开发,生产等)的各种可能性.
web:
image: example/my_web_app:latest
links:
- db
- cache
db:
image: postgres:latest
cache:
image: redis:latest
Run Code Online (Sandbox Code Playgroud)
但是,我不清楚何时使用图像而不是构建.
这是他们唯一的image: example/my_web_app:latest例子:
另一个常见用例是针对Compose应用程序中的一个或多个服务运行adhoc或管理任务.此示例演示如何运行数据库备份.
其他示例案例使用 build: .
我知道,在第一次打开容器时,使用图像而不是构建可以提供更好的性能,因为图像已经是准备好的构建.但是,我可以预见到这样做有很多问题:
:latest版本(或者你?).:latest标签),您无法控制您正在触摸的文件版本.但是每次你出现docker-compose up它都会更新到最新的工作版本.以前的一些观点可能并不完全正确.随意拆除它们.
GHE*_*iLD 11
通常,您希望build .在以下方案中使用:
这通常在您开发或测试并且代码未生成就绪时完成.例如测试失败,代码无法编译,代码错误等.
通常,只有在准备好部署映像时才会创建映像.此时,您将创建图像,通过其标签将其版本化并将其推送到您的个人DTR或Docker Hub.
使用docker compies中的版本时:latest,您可以指定任何版本,以确保在任何给定环境中运行正确的版本.例如,在生产中,您可能希望创建一个名为compose的compose文件docker-production.yaml,其配置如下:
web:
image: "example/my_web_app:${TAG}"
links:
- db
- cache
db:
image: postgres:9.5.2
cache:
image: redis:3.0.7
Run Code Online (Sandbox Code Playgroud)
其中${TAG}是在运行时替换的环境变量,例如docker-compose up -d -f docker-production.yaml.你可以阅读更多有关变量替换这里.
组合的强大之处在于,您可以使用由构建系统自动启动的可变替换创建构建文件,不再限制您:latest甚至是硬编码版本.
注意:
build .场景可能并不准确适用于所有情况,但对于我的公司如何使用撰写是准确的.build .在docker-compose上下文而不是docker
build上下文中.正如@ GHETTO.CHiLD所说,这取决于您的需求和您的工作流程.实际上我们不执行手动构建.我将解释我们如何管理这个以及为什么.它非常适合我们的流程,但不适合其他情况.
有一个docker-compose.yml促进环境管理的发展.它们只是运行docker-compose up并从注册表中提取图像并将其安装在容器内的目录中.
version: "2"
services:
web:
build:
context: ../../
dockerfile: dockerfiles/dev/Dockerfile
image: registry.my.domain/my_image:dev
volumes:
- ../../:/opt/app
working_dir: /opt/app
Run Code Online (Sandbox Code Playgroud)如果他们对Dockerfile进行了更改(例如,他们需要一个新库),他们可以在他们的机器(docker-compose build)中构建映像,但不会对注册表推送映像.
dev映像并运行测试.$TAG图像标记构建生产图像.docker-compose.yml在项目存储库中的敏感数据.要进行升级,我们只需从注册表中提取新标签(我们可以自动执行此操作,但我不确定在未经过人工测试的情况下部署到生产中:D).当然,您每次都可以构建映像进行开发,但是有些项目可能需要很长时间才能构建.例如,Python3 + pandas可能需要25分钟才能构建,因此如果你不得不经常在项目之间切换,那就太令人沮丧了.另一方面,拉图像只需不到一分钟.
我们使用这种方法是因为GitLab为我们提供了CI,注册表和运行者来构建图像和运行测试.没有它你就可以做到,但你需要自己集成所有组件.流程并不完美,它有一些缺点,但在我们的场景中很小.
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |