docker制作springBoot项目镜像容器
2019-11-21 本文已影响0人
顾道夫
前提:准备好基础具备JAVA8环境的镜像,准备一个制作镜像的目录
1.打包好应用代码 部署文件 springBoot只有一个jar包
xxx-0.0.1-SNAPSHOT.jar
2.编写all.sh文件
这里路径都是容器里的路径,将配置文件,日志目录软链接到挂载目录,方便修改,可持续化
#!/bin/bash
#export JAVA_HOME=/data/jdk
#export PATH=$JAVA_HOME/bin:$PATH
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+08"
cd /opt/product/xxx/
rm -rf config logs
ln -s /opt/product/data/config /opt/product/xxx/config
ln -s /opt/product/data/logs /opt/product/xxx/logs
#java -jar -Dspring.profiles.active=prod -Dspring.config.location=/opt/config ./xxx-0.0.1-SNAPSHOT.jar
cd /opt/product/xxx/
java $JAVA_OPTS -jar xxx-0.0.1-SNAPSHOT.jar
#ping 192.168.220.121
3.编写Dockerfile文件
FROM java:8
MAINTAINER gudolf
RUN mkdir -p /opt/product/xxx
ADD xxx-0.0.1-SNAPSHOT.jar /opt/product/xxx/xxx-0.0.1-SNAPSHOT.jar
RUN sh -c 'touch /opt/product/xxx/xxx-0.0.1-SNAPSHOT.jar'
#RUN cd /opt/jdk/jdk1.8.0_111/bin/ && chmod +x *
VOLUME [ "/opt/product/data/" ]
ENV JAVA_HOME="/data/jdk"
ADD all.sh /root/
RUN chmod +x /root/all.sh
ENTRYPOINT ["/root/all.sh"]
CMD ["/usr/sbin/init"]
#ENTRYPOINT [ "sh", "-c", "$JAVA_HOME/bin/java -jar /app.jar -Duser.timezone=GMT+08" ]
4.制作镜像
sudo docker build -t xxx:xxx ./
5.启动镜像
docker run --name=xxx --restart=always -d -ti -p 60003:60003 -v /data/product/xxx_data:/opt/product/data xxx:xxx