使用docker部署版本化应用程序的正确方法是什么?

时间:2014-08-07 15:17:07

标签: playframework docker

我有一个play framework 2.3应用程序,我想通过docker部署(并不断更新)。如果我发布了一个新版本的应用程序,我应该每次构建一个新的docker镜像还是构建一个docker镜像,通过git pull / apt-get下载并安装我的应用程序?

我到目前为止看到的Dockerfiles通过apt-get安装应用程序(例如postgres图像),这意味着要部署我的应用程序的新版本,我只需要重新启动容器,这将从私有中提取最新版本。 deb存储库。回滚将是一件麻烦事,因为我不得不急于创建一个新的docker来指向特定的包版本。

另一种方法是为每个应用程序版本创建一个新映像。然而,这是使用docker的“正确”方式吗?

1 个答案:

答案 0 :(得分:3)

您应该每次都构建一个新的泊坞窗图片并使用代码的版本部分(例如:latest:2.3)来帮助用户选择正确的版本:

$ docker build -t pavel987/playframework:2.3 .
....
# docker builds
$ docker tag pavel987/playframework:2.3 pavel987/playframework:latest
# Assuming your Docker Hub user name is pavel987
$ docker push pavel987/playframework

使用版本号进行标记,使用latest进行标记可让您的用户自动使用最新版本(因为CLI默认使用latest),如果他们没有“39”,他们仍会选择一致的版本; t想要改变的事情(例如:2.3)。因此,在他们自己的Dockerfiles中,如果他们想要使用最新版本,他们可以使用FROM pavel987/playframework:latest,如果他们想要固定他们的基础,可以使用FROM pavel987/playframework:2.3

这一切都假定您希望主分发版为Docker镜像。