【发布时间】:2015-04-05 20:49:18
【问题描述】:
我围绕 Docker 研究了很多实践,并且已经取得了很大进展。 但是有一件事情一直困扰着我,那就是使用纯数据容器。
以下是我当前设置的简要概述:
# nginx
web:
extends:
file: _common.yml
service: web
ports:
- "80:80"
environment:
APPLICATION_ENV: prod
volumes_from:
- data
links:
- db
- redis
# php5-cli
app:
extends:
file: _common.yml
service: app
environment:
APPLICATION_ENV: prod
volumes_from:
- data
links:
- db
- redis
data:
image: <censored-url>
volumes:
- "/var/lib/mysql"
- "/app"
# percona
db:
extends:
file: _common.yml
service: db
volumes_from:
- data
# redis
redis:
extends:
file: _common.yml
service: redis
您看到的<censored-url> 是使用此 Dockerfile 构建的映像:
FROM busybox
COPY . /app
现在此设置有效,但我只是不知道如何处理新版本。 我的源代码在 git 中,当我想部署到生产环境时,我想我会创建一个新图像(FROM busybox 可能应该替换为我现有的图像 url)并在我的生产服务器上拉入新图像。
但是如何获取数据以更新我的 Web 容器等?我还必须确保我的持久数据(/var/lib/mysql)仍然存在。
我希望问题很清楚,我很乐意在必要时澄清。
【问题讨论】:
标签: docker production-environment dockerfile docker-compose