IDEA配合Docker插件进行一键部署
-
服务器装好Docker环境,并且开放docker端口且加密给外部访问
参考:https://www.cnblogs.com/haoxianrui/p/15322508.html#1-docker-开启远程访问 -
springboot 中进行配置
多模块项目,在最外层的pom文件中进行 build 配置
<build>
<!--使打包的 jar 包名称就没有版本号-->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests> <!--默认关掉单元测试 -->
</configuration>
</plugin>
</plugins>
</build>
- 编写 Dockerfile 配置文件
# 基础镜像
FROM openjdk:8-jre
# 维护者信息
MAINTAINER pzi<pzi@qq.com>
# 设置容器时区为当前时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone
# /tmp 目录作为容器数据卷目录,SpringBoot内嵌Tomcat容器默认使用/tmp作为工作目录,任何向 /tmp 中写入的信息不会记录进容器存储层
# 在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
VOLUME /tmp
# 复制主机文件至镜像内,复制的目录需放置在 Dockerfile 文件同级目录下
ADD msgdemoimpl/target/msgdemoimpl.jar app.jar
# 容器启动执行命令
ENTRYPOINT ["java", "-Xmx128m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
# 声明容器提供服务端口
EXPOSE 8800
4. idea 中配置 docker
● 配置端口以及容器名字
这样的话,就会按照命令 docker -p -d 8800:8800 msgdemo:1.0 的方式启动镜像。
- 最后,直接运行即可将 jar 包成功部署到服务器
√ TODO 使用dockerfile部署一个jar包 并且测试能否跑通
踩坑:暴露端口后,还需要指定主机端口和容器端口的映射关系,这样才能正确访问接口
tips:
删除 docker images 中REPOSITORY 和 TAG 都为 none 的镜像
docker rmi $(docker images -f "dangling=true" -q)