一、简介
在实际项目中,我们通常采用Jenkins自动化构建来构建Docker镜像,但是公司有时候Jenkins会挂掉或者Jenkins空间不足会导致无法构建镜像,这个时候如果项目地需要升级镜像版本就只能干等,构建镜像除了使用Jenkins来构建,也可以自己手动构建,然后自己线下打包镜像压缩文件推送到项目地解压缩即可,本文我们将总结如何手动构建一个后端的镜像。
需要准备的东西有:
- 后端服务通过maven打包的jar包;
- Dockerfile文件;
二、构建镜像
(1)、准备后端jar包
我们都知道,实际上是通过java -jar xxxx.jar来运行服务的,所以我们首先需要使用maven build打包一个最新的后端服务jar.
【a】更新代码
使用git pull拉取最新代码,保证镜像文件使用的代码是当前Git仓库最新的。
【b】执行mvn clean命令将根目录下生成的target文件移除
【c】执行mvn install命令打包jar
打包成功后户提示“BUILD SUCCESS”,然后在项目根目录下的target目录下可以看到刚刚打包成功的jar包。
(2)、编写Dockerfile
构建镜像肯定少不了Dockerfile,如下:
#基础镜像
FROM 192.168.2.78:5000/library/centos-jdk:1.7.79
#作者
MAINTAINER weixiaohuai [email protected]
#添加文件
#这里的jar包名称就换成上面打包成功的target/xxx.jar即可
ADD XXXXXX-0.0.1-SNAPSHOT.jar /usr/local/XXXXXX-0.0.1-SNAPSHOT.jar
#开放端口
EXPOSE 6222
#启动时执行的命令
CMD ["/bin/bash"]
#启动时执行的命令
ENTRYPOINT ["java","-jar","-Xms2048m", "-Xmx2048m", "-XX:PermSize=256M", "-XX:MaxPermSize=256M","/usr/local/XXXXXX-0.0.1-SNAPSHOT.jar"]
注意:Dockerfile中的XXXXXX-0.0.1-SNAPSHOT.jar需要替换成项目中打包成功的jar名称。
(3)、构建镜像
【a】将刚刚的jar包和Dockerfile传到安装有Dockerfile的服务器中
【b】执行docker build构建镜像
docker build -t 192.168.35.105:5000/develop/XXX-svc:20200331100100 .
- -t: 指定构建镜像的名称
- .:指定Dockerfile文件目录
注意修改XXX为具体的服务名称。
如上图可见,已经成功构建镜像。
【c】查看成功构建的镜像
docker images | grep 20200331100700
下面我们就可以使用docker run运行我们刚刚构建的镜像了,以上就是本地手动构建后端服务镜像文件的详细步骤,在Jenkins出现故障又急需镜像的时候就可以采用手动构建的方式,如果需要推送到项目地的话,可以借助docker save将刚刚构建成功的镜像文件压缩成tar,然后传输到项目地再使用docker load加载tar,这样镜像就推送到项目地了。