我想为每个版本的项目制作一张图片。但是我如何才能为所有这些版本共享一个dockerfile。唯一的区别是版本号。谢谢
答案 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}