docker打包和启动执行镜像

原创
2022/06/09 11:06
阅读数 218
  1. 创建Dockerfile文件
FROM openjdk:8

WORKDIR /home/service/xxx

COPY ./xxx.jar .

ENV JAVA_OPTS="\
-server \
-Xms2048m \
-Xmx2048m \
-Xmn1024m \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m \
-XX:-OmitStackTraceInFastThrow \
-Dcom.sun.management.jmxremote.rmi.port=19008 \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=19008 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Djava.rmi.server.hostname=192.x.x.x" \
SPRING_PROFILES_ACTIVE="prod"

ENTRYPOINT ["sh","-c","java ${JAVA_OPTS} -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} -jar /home/service/xxx/xxx.jar"]
  1. 启动镜像脚本
#!/bin/bash

CONTAINER="xxx"
IMAGE_NAME="xxx"

echo "service image: $IMAGE_NAME"
echo "service container: $CONTAINER"

cid=$(docker ps|grep "$CONTAINER"|awk '{print $1}')
if [ -n "$cid" ];
then
  echo "docker stop $cid"
  docker stop $cid && docker rm $cid
fi
# 获取最新的镜像
imgid=$(docker images|grep '$IMAGE_NAME'|awk '{print $3}')
if [ -n "$imgid" ];
then
  echo "docker rmi $imgid"
  docker rmi "$imgid"
fi
# 新建镜像
docker build -t xxx .
# 创建并启动容器
docker run -d --restart=always --name xxx -p 8080:8080 -p 19008:19008 -v /etc/localtime:/etc/localtime \
 -v /data/services/xxx:/home/service/xxx xxx

sleep 5
# 打印日志
docker logs --tail=200n xxx

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部