docker-compose部署springboot应用

docker-compose部署springboot应用

最开始使用tomcat部署java应用,如果要部署多个系统,我通常部署多个tomcat,每个tomcat一个系统,可以添加到系统服务自动启动。后来随着springboot流行,改为将应用打成jar包直接通过jar包启动,这样部署很方便,但是设置后台服务不方便,并且每次启动要去查启动参数(当然也可以写一个shell脚本辅助)。

再后来随着docker流行,改为使用docker部署,倒是方便很多。这里介绍我使用docker和docker-compose部署的操作

1. 准备基础镜像

需要准备一个具有java环境的基础镜像,我使用centos7(centos7不久以后停止官方支持,可以考虑使用其他linux),然后加入jdk、字体,并修改环境变量等配置。下面是Dockerfile

(字体是因为我的项目里要生成中文的图片,没有字体会有乱码问题。jdk和字体可以自行在网上找到)

将jdk、字体放在同一个目录,然后执行docker build -t c7_j8_app .即可制作镜像(c7代表centos7,j8是jdk8,app是应用名称)

#制作centos-jdk1.8镜像
FROM centos:7
MAINTAINER fantoutou@163.com
ENV TZ=Asia/Shanghai
#复制jdk
ADD jdk/jdk1.8   /usr/local/jdk1.8/

#设置java环境变量
ENV JAVA_HOME /usr/local/jdk1.8
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
#增加宋体字体
#复制本地字体库(fonts是Dockerfile同级目录)
ADD simsun.ttc /usr/share/fonts/chn/simsun.ttc

#安装字体库
	RUN yum -y install fontconfig \
	&& chmod 777 /usr/share/fonts/chn \
	&& yum -y install ttmkfdir \
	&& ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir \
	&& fc-cache

2. docker-compose启动

都是常用的参数和命令。因为network_mode使用的是host模式,所以没有做端口映射。

我使用start.sh脚本启动,主要是因为日志问题没有找到更好额解决方法

下面是 docker-compose.yml

version: '2'
services:
  app:
    image: c7_j8_app
    restart: always
    container_name: app_dev
    privileged: true
    working_dir: /home/app
    entrypoint: sh /home/app/start.sh
    network_mode: host
    environment:
      - SPRING_PROFILES_ACTIVE=dev
      - server.port=8085
      - JAVA_OPTS=-Xms4g -Xmx4g
    volumes:
      # 应用目录
      - ./app:/home/app:rw
      # 启动脚本
      - ./start.sh:/home/app/start.sh
      # 附件目录映射
      - /home/app/attachments:/home/app/attachments:rw
      # 日志路径映射
      - /home/log:/home/log:rw

start.sh

nohup java -jar app-exec.jar > ./app.log &
tail -f app.log

3. 其他

如果要部署多台服务器,可以搭一个harbor,然后把基础镜像或者应用镜像传到harbor,然后在要部署的服务器拉取镜像启动即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值