[Docker] docker-compose 部署 springboot应用

目录结构
在这里插入图片描述
downlodas,uploads,logs是从docker映射出来的文件夹

20201222-1744,20201224-1015,20201224-1828这三个是存放jar包和Dockerfile文件的文件夹

这里拿20201224-1828这个文件夹来举例

20201224-1828文件夹包括一个Dockerfile和一个用maven package打出来的springboot jar包

Dockerfile文件如下

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=*.jar
ENV TZ=Asia/Shanghai
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","/app.jar"]

第一行:意思是基于openjdk:8-jdk-alpine镜像来制作镜像(alpine是一个体积很小的linux发行版,这个jdk是级域alpine制作的,体积比较小。所以我们基于这个镜像做的镜像也会很小)
第二行:是设置一个参数,将所有以jar结尾的文件标做JAR_FILE
第三行:这里是设置时区,否则日志打印时间不是北京时间
第四行:将刚才的jar复制为app.jar
第五行:运行jar文件并设置了jvm参数

基于这个Dockerfile就可以做镜像了

docker-compose.yml文件内容如下

version: '3.3'

services:
  app1:
    restart: always
    container_name: app1
    build:
      context: ${CURRENT_FOLDER_NAME}/.
    image: app1
    volumes:
      - ./downloads:/usr/local/downloads/
      - ./uploads:/usr/local/uploads/
      - ./logs:/usr/local/logs/
    ports:
      -  6027:16027
networks:
  default:
    external:
      name: network0

docker-compose中的build表示是需要将dockerfile制作成镜像的,用的文件夹在context里,image表示将制作好的镜像命名为app1。但这样会有一个问题,如果第一次运行docker-compose up -d会创建镜像。但是第二次再执行
docker-compose up -d不会创建新的镜像,也就是jar包其实没有更新。
这时只要加上docker-compose up -d --build即可每次重新制作镜像。

.env 文件中是存放着docker-compose文件中用到的参数

CURRENT_FOLDER_NAME=20201224-1828

因为有可能要回滚版本,所以以日期来命名文件夹,并保留一些旧的jar包,需要时修改.env文件即可实现回滚的操作。

接下来就是运行了

sudo docker-compose down && sudo docker-compose up -d --build && sudo docker-compose logs -f

即可成功运行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值