如何为我的项目的多个版本共享一个Dockerfile?

时间:2019-06-03 06:16:06

标签: docker dockerfile

我想为每个版本的项目制作一张图片。但是我如何才能为所有这些版本共享一个dockerfile。唯一的区别是版本号。谢谢

1 个答案:

答案 0 :(得分:0)

您可以将参数传递给docker build调用。

例如,考虑以下Dockerfile(Node.js项目的示例,但是相同的主体可以应用于任何类型的应用程序):

FROM node:10-alpine

# Install 3rd parties required for your application

# Define an argument for the project version
ARG PROJVER

# Use this argument when installing the project
RUN npm install myproject@{PROJVER}

一旦有了这样的Dockerfile,就可以为项目的特定版本构建它,当然也可以使用该标签将其推送到注册表中:

$ export PROJVER=123
$ docker build --build-arg PROJCET_VERSION=${PROJVER} -t myproject:${PROJVER}
$ docker push myregistry:5000/myproject:${PROJVER}