SpringBoot Docker 发布

Posted 阿 军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot Docker 发布相关的知识,希望对你有一定的参考价值。

pom 文件 

    <groupId>com.vipsoft.boot</groupId>
    <artifactId>vipsoft-web-boot</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>


 <!-- 统一管理 jar 包版本 -->
    <properties>
        <boot.version>2.2.8.RELEASE</boot.version>
        <java.version>1.8</java.version>
        <docker.image.prefix>vipsoft</docker.image.prefix>
    </properties>


 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- Docker maven plugin -->
        </plugins>
    </build>

 

编辑 Dockerfile 文件 

# Docker image for SpringBoot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER Jimmy <Jimmy.Chen@vipsoft.com.cn>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD vipsoft-web-boot-1.0.jar  app.jar
# 运行jar包
RUN bash -c \'touch /app.jar\'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

 

 

2.将编译好的jar包和 dockerfile 传到服务器上,我这边用的目录为 /opt/vipsoft

#sftp > put 本地文件路径  远程服务器路径
sftp> put /Users/jimmy/Projects/VipBoot/VipSoft-Web-Boot/src/main/docker/Dockerfile /opt/vipsoft

sftp> put /Users/jimmy/Projects/VipBoot/VipSoft-Web-Boot/target/vipsoft-web-boot-1.0.jar /opt/vipsoft

 

 

 

 

 

 

 

编译docker 文件

[root@centos-linux vipsoft]# docker build -t vipsoft .

  

 

#运行 docker 
[root@centos-linux vipsoft]# docker run --name vipsoft8081 -d -p 8081:8080 vipsoft

--name 容器名称,后面停止、启动、删除,都可以直接用这个名字
-d 参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8080端口(对外访问端口)映射到容器中的8080端口(项目设置端口)

 

 

访问测试

 

 

 

以上是关于SpringBoot Docker 发布的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Docker发布SpringBoot项目

Springboot 容器使用 docker-compose 连接到 mongo 容器的 503 错误代码

SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段

Spring boot:thymeleaf 没有正确渲染片段

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

从 docker 容器执行时,SpringBoot RestTemplate 返回 403 禁止