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

标签 docker dockerfile

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

最佳答案

您可以将参数传递给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}

关于docker - 如何为我的项目的多个版本共享一个Dockerfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56421980/

相关文章:

docker - 使用Docker Toolbox在Windows 10的PATH中找不到Docker Compose

java - 部署时覆盖容器 JRE

mysql - 无法使用 MySQL Workbench 将 mysql 构建与 dockerfile 连接

docker - Docker Compose无法找到构建路径

docker - 如何在 Go Docker 多阶段构建中添加本地依赖?

mongodb - 在 Docker Compose 中无法连接到 Mongo Atlas Cloud : incomplete read of message header & certificate error

nginx - Docker 容器遇到套接字问题(单独的 Flask + Nginx 容器)

多个容器之间的 Docker 命名卷

django - Dockerfile 运行 python 命令不起作用

Docker中的Python脚本在子目录中找不到模块