个人小项目-打包并使用maven的docker插件远程部署应用到服务器

项目结构:
├─simple-example 根目录
├─common 工具类包配置如fastjson,mybatisplus,swagger的配置,自定义异常类,公共工具类
└─service
└─service-stall 主服务

(1) 打包

  1. spring-boot-maven-plugin要写到根目录的pom文件中
	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork> 
                    <mainClass>主类地址</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  1. 在common的配置文件中配置如下:取得仅供依赖的jar,要不然可直接执行的jar就太大了
	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <classifier>exec</classifier>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)部署: 使用dockerfile-maven-plugin插件来自动化部署项目

  1. 在service-stall 主服务 的pom文件中使用插件
    注意: 使用此插件需要配置环境变量,系统需要重启
    变量名: DOCKER_HOST
    变量值: tcp://ip:端口
	 <build>
        <plugins>
            <!--maven-docker打包部署工具-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <configuration>
                    <repository>随便写个/随便写个</repository>
                    <tag>${project.version}</tag>
                </configuration>
            </plugin>
        </plugins>
    </build>
  1. 编写Dockerfile
    要注意,该文件需要放到 (使用dockerfile-maven-plugin的模块中)即: service-stall 主服务
# 指定基础镜像
FROM openjdk:8-jre
# 可以不写
MAINTAINER 个人名称 <个人邮箱>
# 指定挂载点
VOLUME /tmp
# 复制文件到容器
COPY target/打包出来的名字.jar /app/app.jar
# 配置容器启动后的命令
#ENTRYPOINT ["java", "-jar", "/app/app.jar"]
ENTRYPOINT java -jar /app/app.jar
# 对外暴露的接口
EXPOSE 8080
  1. 在部署前测试自己打包出来的jar包
    尤其注意自己的application.yml之类的配置文件在不在jar里

  2. 运行插件的build,运行成功后,查看idea中docker的本地镜像
    点击创建镜像,可以配置名称,端口映射; 可以查看日志,根据日志判断运行情况
    在这里插入图片描述

  3. 如果使用docker的mysql镜像,在配置数据库的url时可以使用如下配置,这个方式对不想花时间的人挺方便的

url: jdbc:mysql://服务器的ip地址:对外的端口/数据库名?serverTimezone=GMT%2B8

结束

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值