springboot 项目使用 gradle-jib 插件制作镜像及运行容器

   ## 如果springboot配置jdbc时访问不了mysql;参考:docker学习(八) docker-compose 启动一个springboot 连接mysql_docker-compose springboot mysql jpa-CSDN博客

1. 使用阿里云容器镜像服务 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台  

           先[创建镜像仓库]:例如个人的公开仓库 registry.cn-shanghai.aliyuncs.com/starxin/docker-jib:1.0

2. 在idea中使用gradle构建工具,在配置文件build.gradle中添加jib插件等信息

plugins {
    id 'java'
    id 'idea'
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
    id 'org.springframework.boot' version '2.7.5.RELEASE'
    id "com.google.cloud.tools.jib" version "3.0.0"
}

.......其它配置......

jib {
    from {
        // image = 'registry.cn-shanghai.aliyuncs.com/starxin/docker-jib:1.0'
        image = "eclipse-temurin:11-jre-focal"
        platforms {
            platform {
                architecture = 'arm64'  //部分国产操作系统用arm64
                os = 'linux'
            }
        }
    }
    to {
        image = 'registry.cn-shanghai.aliyuncs.com/MyRegistry/projectM'
        tags = ["latest", "${project.version}".toString()]
        allowInsecureRegistries = true
        auth {
            username = '登录账号'
            password = '登录密码'
        }
    }
    container {
        creationTime='USE_CURRENT_TIMESTAMP'
        jvmFlags = ['-Djava.security.egd=file:/dev/./urandom', '-Dspring.profiles.active=prod', '-Dfile.encoding=utf-8', '-Duser.timezone=GMT+08']
        mainClass = 'com.xxx.RunApplication'
        ports = ['8080']
    }
}

注释:jvmFlags 配置中

'-Djava.security.egd=file:/dev/./urandom'   -  SecureRandom在java各种组件中使用广泛,可以加快随机数产生过程;建议添加

'-Dspring.profiles.active=prod'   -执行springboot项目使用配置 application-prod.yml;可选

'-Dfile.encoding=utf-8'  - 如果有下载文件代码,不加此句容易出现中文乱码;可选

'-Duser.timezone=GMT+08'  - Java获取时间与系统时间相差8小时的解决方法;可选


注意:com.google.cloud.tools.jib version="2.0.0" 时....容器创建时间用:creationTime='USE_CURRENT_TIMESTAMP'
           com.google.cloud.tools.jib version="1.x"    时....容器创建时间用:useCurrentTimestamp=true

具体版本对应参数参考 - https://github.com/GoogleContainerTools/jib/blob/master/jib-gradle-plugin/README.md

3. 配置完上面build.gradle,会在构建工具中出现jib插件,点击jib可以将本地jar打包成镜像文件上传到阿里云镜像仓库;

    你可以在自己的服务器中搭建docker镜像仓库,然后上传到自己的docker镜像仓库中

4. 使用docker-compose运行容器,在 linux目录/root/home/docker下添加 docker-compose.yml ,内容如下:

version: '2'
services:
  projectM:
    image: registry.cn-shanghai.aliyuncs.com/MyRegistry/projectM
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 8080:8080
    restart: always

5.使用docker-compose命令运行容器;

cd /root/home/docker
docker images                     #查看容器列表
docker pull registry.cn-shanghai.aliyuncs.com/MyRegistry/projectM:[镜像版本号]  #从阿里云拉取镜像到本地服务器
docker-compose stop projectM      #停止运行的容器
docker-compose rm -f projectM     #强制删除容器
docker-compose up -d projectM     #后台方式运行容器
docker image rm $(docker image ls -a -q)  #删除无效的容器
docker images                     #查看容器列表
docker-compose logs -f projectM   #打印实时日志,可以在随时进入执行,查看运行的容器的日志信息
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星梦天河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值