Springboot使用docker容器部署

Posted lixyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot使用docker容器部署相关的知识,希望对你有一定的参考价值。

本文基于ubuntu 16

1.安装openjdk8(略)

2.创建Dockerfile文件

cd ~
vi Dockerfile

Dockerfile内容


FROM openjdk:8
MAINTAINER Lee <[email protected]>


WORKDIR /home
VOLUME /home/logs
ENV java_opts ‘-XX:+PrintGCDetails -XX:+PrintGCTimeStamps‘
#ADD package/pinpoint-agent /pinpoint-agent
ADD package/lee-spring-demo/target/lee-spring-demo.jar /home/
RUN chmod -x lee-spring-demo.jar \
&& /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai‘ >/etc/timezone
CMD java -jar $java_opts /home/lee-spring-demo.jar
EXPOSE 8080

EXPOSE 4100

3.编写启动shell脚本

#!/bin/sh
NEW_PACK=`date +%Y%m%d%H%M%S`

sudo docker build -t lee/demo:$NEW_PACK /home/admin

sudo docker stop $(sudo docker ps -a |grep l-4002|awk print $1)
sudo docker rm -f $(sudo docker ps -a |grep demo-4002|awk print $1)
sudo docker run -d --privileged=true -p 4002:8080 -p 4102:4100 -v /data/demo/logs:/home/logs -v /etc/localtime:/etc/localtime:ro -e java_opts="-Xms512M -Xmx1024M -XX:NewSize=256M -XX:MaxNewSize=512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Dpinpoint.agentId=13-21-4002 -Dpinpoint.applicationName=13-21-4002 -Dspring.profiles.active=uat -Dspring.nodeId=2" --name demo-4002 lee/demo:$NEW_PACK

 

附:springboot直接部署到linux shell脚本

#!/bin/sh
NEW_PACK=`date +%Y%m%d%H%M%S`

cd /data/project/lee
cp /home/admin/package/lee-spring-demo/target/lee-spring-demo.jar bolt-loan-api.$NEW_PACK.jar

kill -9 $(ps -ef |grep lee |grep -w 4001|awk print $2)
nohup java -jar -Xms512M -Xmx512M -XX:NewSize=256M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Dspring.profiles.active=uat -Dspring.nodeId=1 -Dserver.port=4001 -Dxxl.job.executor.port=4101 bolt-loan-api.$NEW_PACK.jar >/dev/null 2>&1 &

 

以上是关于Springboot使用docker容器部署的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器入门之一:部署SpringBoot项目

Springboot应用使用Docker部署

idea一键加密部署springboot到docker容器

springboot核心技术-----Docker数据访问自定义starter

docker 容器部署

如何使用未部署在 swarm 中的 docker 容器从 docker swarm 访问服务?