⏬下载docker客户端
下载地址 : https://docs.docker.com/get-docker/
⏬下载IDEA的docker插件
1.点击设置 ➡ 点击插件 ➡ 搜索docker并下载
💻Windows环境部署
1.点击设置 ➡ 选择docker ➡ 选择docker for Windows ➡ 选择完之后下方会自动显示连接成功
SpringBoot项目打包(maven/gradle)
maven项目打包
maven项目需要提前在项目中的pom.xml中添加如下参数(避免执行jar包时报没有主清单错误)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
最后点击package进行打包
jar文件位置
2. gradle项目打包
gradle项目需要提前build.gradle文件中加入gradle 的打包插件(避免执行jar包时报没有主清单错误)
buildscript{
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.3.7.RELEASE")
}
}
最后点击build进行打包
jar文件位置
配置DockerFile文件 (maven/gradle)
maven DockerFile配置
### JDK8环境,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER zh<1134386107@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一下挂载文件夹,我这里用不上 写不写都可以
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/*.jar app.jar
#启动容器最后执行命令
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露10000端口
EXPOSE 10000
gradle docker 配置
### JDK8环境,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER zh<1134386107@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一下挂载文件夹,我这里用不上 写不写都可以
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD build/libs/*.jar app.jar
#启动容器最后执行命令
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露端口
EXPOSE 10303
最后注意一下jar生成的位置, 是否符合dockerfile中填写的路径
✅配置运行dockerfile
1.点击下拉后的编辑配置
2.添加dockerfile
选择对应的dockerfile文件, 容器端口填写为项目启动的端口, 其他的内容可以随意填写
3.最后点击运行, 就会看见日志正常输出了(如果日志卡主没有输出重启IDEA即可)
docker中的镜像也会同步输出日志
📀线上docker服务器打包
线上服务器打包其实和本地打包的步骤操作都差不多, 但是需要注意的地方有两点
- 设置中的docker要改为线上服务器地址
在服务器上一定要放行docker的端口(2375)和你启动项目的端口
Centos7放行端口的命令
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#(--permanent 为永久生效,不加为单次有效(重启失效))
📃IDEA日志乱码
这里的乱码是idea的问题, 在docker中日志是显示正常的
解决办法: 在配置文件中加入下面的配置
-Dfile.encoding=utf-8