⏬下载docker客户端

下载地址 : https://docs.docker.com/get-docker/




docker 打包gin docker 打包依赖_spring boot


⏬下载IDEA的docker插件

1.点击设置 ➡ 点击插件 ➡ 搜索docker并下载


docker 打包gin docker 打包依赖_idea_02


💻Windows环境部署

1.点击设置 ➡ 选择docker ➡ 选择docker for Windows ➡ 选择完之后下方会自动显示连接成功


docker 打包gin docker 打包依赖_idea_03


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进行打包


docker 打包gin docker 打包依赖_spring boot_04


jar文件位置


docker 打包gin docker 打包依赖_maven_05


2. gradle项目打包

gradle项目需要提前build.gradle文件中加入gradle 的打包插件(避免执行jar包时报没有主清单错误)

buildscript{
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.3.7.RELEASE")
    }
}

最后点击build进行打包


docker 打包gin docker 打包依赖_docker 打包gin_06


jar文件位置


docker 打包gin docker 打包依赖_spring boot_07


配置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.点击下拉后的编辑配置


docker 打包gin docker 打包依赖_idea_08


2.添加dockerfile


docker 打包gin docker 打包依赖_docker_09


选择对应的dockerfile文件, 容器端口填写为项目启动的端口, 其他的内容可以随意填写


docker 打包gin docker 打包依赖_docker 打包gin_10


3.最后点击运行, 就会看见日志正常输出了(如果日志卡主没有输出重启IDEA即可)


docker 打包gin docker 打包依赖_spring boot_11


docker中的镜像也会同步输出日志


docker 打包gin docker 打包依赖_idea_12


📀线上docker服务器打包

线上服务器打包其实和本地打包的步骤操作都差不多, 但是需要注意的地方有两点

  1. 设置中的docker要改为线上服务器地址


docker 打包gin docker 打包依赖_docker_13


在服务器上一定要放行docker的端口(2375)和你启动项目的端口

Centos7放行端口的命令
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#(--permanent  为永久生效,不加为单次有效(重启失效))

📃IDEA日志乱码

这里的乱码是idea的问题, 在docker中日志是显示正常的


docker 打包gin docker 打包依赖_maven_14


解决办法: 在配置文件中加入下面的配置

-Dfile.encoding=utf-8


docker 打包gin docker 打包依赖_docker_15