优秀的编程知识分享平台

网站首页 > 技术文章 正文

构建新镜像(构建镜像的命令)

nanyue 2024-07-22 14:02:07 技术文章 7 ℃

一、背景

微服务采用镜像部署,因此早期我们使用openjdk:8-jre作为基础镜像,但由于新需求需要在服务器中使用ping命令,而原先的镜像不能满足现有的需求。因此,需要基于原来镜像构建一个满足ping命令的镜像。

二、操作实现

1、基于原镜像构建一个新基础镜像,新增ping命令

dockerfile命令如下

FROM openjdk:8-jre
ENV TZ=PRC


COPY practice-demo.jar /app/app.jar


ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080
ENV APP=app

# 新增ping命令
RUN apt-get update
RUN apt-get install -y iputils-ping

WORKDIR /app
EXPOSE 8080
VOLUME [ "/app/config", "/app/logs" ]
CMD ["/bin/bash", "-c", \
 "java -Xbootclasspath/a:/app/web \
 -XX:+UnlockExperimentalVMOptions \
 -XX:+UseCGroupMemoryLimitForHeap \
 -Dspring.appliation.name=${APP/modules-/} \
 -jar /app/${APP}.jar"]

执行dockerfile脚本,并命名为:openjdk:8-jre-ping

docker build -t openjdk:8-jre-ping .

2、使用新镜像替代老镜像

FROM openjdk:8-jre-ping
ENV TZ=PRC


COPY practice-demo.jar /app/app.jar


ENV SPRING_PROFILES_ACTIVE=prod
ENV SERVER_PORT=8080
ENV APP=app

# 新增ping命令
#RUN apt-get update
#RUN apt-get install -y iputils-ping

WORKDIR /app
EXPOSE 8080
VOLUME [ "/app/config", "/app/logs" ]
CMD ["/bin/bash", "-c", \
 "java -Xbootclasspath/a:/app/web \
 -XX:+UnlockExperimentalVMOptions \
 -XX:+UseCGroupMemoryLimitForHeap \
 -Dspring.appliation.name=${APP/modules-/} \
 -jar /app/${APP}.jar"]

执行dockerfile脚本

docker build -t app.latest .

上述镜像满足现有ping功能。

三、总结

1、背景

2、构建新基础镜像,并替换老基础镜像

3、类似的问题,此方案可以复用

最近发表
标签列表