SpringBoot打jar包放到Docker上

1、 修改pom.xml

追加下面内容:

    <build>

       <plugins> 

           <!-- tag::plugin[]-->

            <plugin>

                <groupId>com.spotify</groupId>

                <artifactId>docker-maven-plugin</artifactId>

                <version>0.4.3</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>

    <!-- end::plugin[]-->

       </plugins>

    </build>

<properties>

       <docker.image.prefix>msg</docker.image.prefix>

       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    </properties>

 

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

 

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

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值