前言
上篇讲到了SpringBoot制作成镜像,但是操作十分麻烦,需要手动拖拽到Linux上,并且还需要执行多的操作。本篇文章描述远程打包流程。
打包SpringBoot项目
pom.xml内容
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!-- docker私服的地址 -->
<dockerHost>http://192.168.112.135:2375</dockerHost>
<!--镜像名称以及版本号-->
<imageName>office:1.0.0</imageName>
<!-- 若需要重复构建相同标签名称的镜像,可将 forceTags 设置为 true -->
<forceTags>true</forceTags>
<!--Dockerfile的位置 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.artifactId}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
创建Dockerfile
DockerFile 内容
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER terry
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 添加jar包到容器并重命名
ADD tools-office.jar office.jar
# 运行jar包
RUN bash -c 'touch /office.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/office.jar"]
# ENV JAVA_OPTS="-Xms512m -Xmx512m"
# -Djava.security.egd=file:/dev/./urandom 加速tomcat启动
# ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=prod -jar /demo.jar"]
#暴露8080端口
EXPOSE 8080
打包
使用Idea maven工具,找到package选项打包。
打包成功后会再target目录生成jar包
制作成Docker镜像
开放docker私服端口供外部访问
-
编辑docker.service文件
vim /usr/lib/systemd/system/docker.service
-
在ExecStart追加配置(开放2375端口容易被黑客攻击,一般在内网设置)
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
-
重启docker
systemctl daemon-reload service docker restart
使用maven docker插件找到docker:build选项
改操作是先制作成Docker镜像,并上传到私服。
上传成功后
docker查看镜像
运行镜像
docker run -d --name tools -p 8080:8080 -t tools:1.0.0
查看容器运行日志
docker logs -f -t --tail 50 tools