SpringBoot打jar包放到Docker上

转自:https://blog.csdn.net/zy910525/article/details/77966729

 

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zy910525/article/details/77966729
1、 修改pom.xml

追加下面内容:

    

        

           

            

                com.spotify

                docker-maven-plugin

                0.4.3

                

                    ${docker.image.prefix}/${project.artifactId}

                    src/main/docker

                    

                        

                            /

                            ${project.build.directory}

                            ${project.build.finalName}.jar

                        

                    

                

            

    

       

    

       msg

       UTF-8

    

 

2、 工程中创建src/main/docker文件夹,创建Dockerfile文件,添加下面内容,pushMessage-0.0.1-SNAPSHOT.jar改成自己的jar包名。

FROM java:latest

ADD pushMessage-0.0.1-SNAPSHOT.jarapp.jar

RUN bash -c 'touch /app.jar'

ENTRYPOINT["java","-jar","/app.jar"]

 

FROM java:latest---》》使用docker中已存在的java:latest镜像

 

3、 eclipse执行mvn package docker:build命令,工程target\docker目录下有编译后的文件

4、 拷贝编译后的两个文件的到服务器,cd到目录,执行【sudo docker build -t="***" .】命令。

-t 添加tag, . 代表当前目录(注意 “.”的存在)

5、 执行docker images命令查看生成的镜像。

6、 执行docker run --name {容器名} -p {宿主机端口}:{docker端口} –v {宿主机目录}:{docker日志目录} -d {镜像ID:latest}

创建并启动容器。

 

 

 

 

 

考虑到以后会做负载均衡,不可能每个jar包都做一个镜像,用以下方法可以实现一个image加载不同的application.properties创建多个容器:

以推送接口为例:

1、 Dockerfile保持不变

2、 创建镜像【sudo docker build -t="msg/push" .】

3、 为不同端口配置文件创建目录/opt/pushMessage/config/8098。

4、 目录内放置该端口的配置文件。

5、 创建日志目录/opt/pushMessage/logs/8098

6、 执行命令创建容器:

docker run --name pushmsg8098 -p 8098:8098 -v/opt/pushMessage/logs/8098:/logs -v/opt/pushMessage/config/8098/application.properties:/application.properties -dmsg/push:latest

 

其他端口同样处理,创建单独的配置文件并在启动容器时加载该配置文件。

 
--------------------- 
作者:代码的寂寞 
来源:CSDN 
原文:https://blog.csdn.net/zy910525/article/details/77966729 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(docker,springboot)