Dockerfile 参数管理
背景:
我要把6个jar包都打进docker镜像,我的Dockerfile如下:
以ebc-gateway.jar 包为例:
# 使用 OpenJDK1.8作为基础镜像
FROM eclipse-temurin:8-jdk-alpine
# 设置工作目录
WORKDIR /app
# 拷贝 jar 包到容器中
COPY ebc-gateway.jar app.jar
# 设置容器启动时的命令
ENTRYPOINT ["java", "-Xms512m", "-Xmx512m", "-jar", "app.jar"]
我6个jar包,只需要每次把ebc-gateway.jar换成其它的jar包名字就行了,但是我觉得有点繁琐,能不能把jar包名字作为参数传递进去呢?可以的。
先来看Dockerfile怎么写
# 使用 OpenJDK1.8作为基础镜像
FROM eclipse-temurin:8-jdk-alpine
# 声明构建参数(无默认值)
ARG JAR_FILE
# 设置工作目录
WORKDIR /app
# 拷贝传入的 JAR 文件,并命名为 app.jar
COPY ${JAR_FILE} app.jar
# 启动命令
ENTRYPOINT ["java", "-Xms512m", "-Xmx512m", "-jar", "app.jar"]
构建
docker build -t ebc-gateway:v001 --build-arg JAR_FILE=ebc-gateway.jar .
每次构建,只要把ebc-gateway.jar换成对应的jar包名字就行了。