springboot项目通过dockerfile打镜像

流程:

我们开发的项目,其实正常的流程应该是通过jenkins拉取gitlab上的代码,通过mvn install等命令构建jar包,一般是springboot/springcloud项目,通过mvn package,打成jar包,然后通过Dockfile,把jar包构建成镜像,再通过镜像进行容器启动

步骤:

  • 打成jar包
  • 准备Dockerfile配置,构建镜像
  • docker images查看镜像是否生成
  • 然后进行启动容器
  • 开防火墙、安全组、是否正常访问

路径

鉴于学习为目的,我手动上传了sms-admin-service-1.0-SNAPSHOT.jar,Dockerfile

springboot项目通过dockerfile打镜像

Dockerfile配置信息:

大概意思:

从openjdk8的基础镜像,设置时区,拷贝这个jar包到容器的/opt/lcj下,暴露9898访问

#FROM openjdk:8u312-jdk
#FROM java:8
FROM openjdk:8-jdk-alpine
LABEL maintainer="liuchangjiang"

ENV TZ=Asia/Shanghai
ENV ARGS=""

RUN mkdir /opt/lcj
COPY /opt/jar/sms-admin-service-1.0-SNAPSHOT.jar /opt/lcj/sms-admin-service-1.0-SNAPSHOT.jar

EXPOSE 9898
ENTRYPOINT ["sh","-c", "java $ARGS -jar /opt/lcj/sms-admin-service-1.0-SNAPSHOT.jar"]


执行docker-build构建镜像

执行当前目录下的dockerfile, -t 指定镜像名字

docker build -f ./Dockerfile -t sms-admin .

构建成功:输出

Removing intermediate container 40551c911644
Successfully built 85b531f3c50d

docker images查看所有镜像

springboot项目通过dockerfile打镜像

启动容器:

-d 后台启动,-p 9898:9898 第一个是外部访问的端口,映射到docker的内部端口9898,—name指定容器名,镜像id

docker run -d -p 9898:9898 --name sms-admin 85b531f3c50d

查看启动的容器:docker ps

springboot项目通过dockerfile打镜像

开腾讯云/阿里云的安全组就可以访问了

我们就访问 →→→机器ip:9898就可以访问到我们的服务了

规范:

其实企业级的构建镜像流程是

1、jenkins拉取gitlab上的代码

2、通过maven进行install等命令构建jar包(流水线语法或者shell脚本)

3、拷贝jar包到docker的images里

4、推这个镜像到harbor

5、harbor根据推送过来的镜像,再推过去给腾讯云的TKE,进行k8s的集群管理、多节点部署等~

福利-docker命令:

删除某个镜像         docker rmi xxx  
删除某个容器         docker rm  xxx  
查看运行中的容器      docker ps      
查看所有容器         docker ps -a    
启动容器             docker run -d -p 访问端口:宿主机端口 --name 指定名称  镜像id     
上一篇:vue插槽的使用


下一篇:k8s 20220117部署dockerfile