创建Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/qiluo-images/openjdk:17
RUN echo "Asia/Shanghai" > /etc/timezone
WORKDIR /app
COPY *.jar /app/
COPY pod_start.sh /app/
RUN chmod +x /app/pod_start.sh
ENTRYPOINT ["/app/pod_start.sh"]
创建pod_start.sh
#!/bin/bash
echo "23.210.52.55 uc-openplatform.bigdatacq.com"
echo "23.210.52.11 zd-openplatform.bigdatacq.com"
echo "172.16.0.5 redis.cqdx.com" >> /etc/hosts
echo "172.16.0.4 dmsql.cqdx.com" >> /etc/hosts
echo "172.16.0.5 minio.cqdx.com" >> /etc/hosts
echo "127.0.0.1 gateway.cqdx.com" >> /etc/hosts
jarname=`ls /app/*.jar`
JVM="-server -Xmx2G -Xms1G -XX:+UseG1GC -Djava.security.egd=file:/dev/./urandom"
java $JVM -jar $jarname --spring.profiles.active=test
build镜像
docker build -t chongqing-xxxx-service-web:1.0.0 .
服务部署脚本 (deploy_chongqing_web.sh)
#!/bin/bash
# 定义变量
IMAGE_NAME="chongqing-xxxx-service-web:v1.0.0"
CONTAINER_NAME="chongqing-xxxx-service-web"
HOST_PORT=8000
CONTAINER_PORT=8000
DATA_DIR="/data/chongqing-xxx-service-web"
# 检查Docker是否可用
check_docker() {
if ! command -v docker &> /dev/null; then
echo "错误:Docker未安装或未在PATH中"
exit 1
fi
}
# 构建Docker镜像
build_image() {
echo "开始构建Docker镜像..."
docker build -t $IMAGE_NAME .
if [ $? -eq 0 ]; then
echo "镜像构建成功:$IMAGE_NAME"
else
echo "镜像构建失败"
exit 1
fi
}
# 运行Docker容器
run_container() {
echo "检查数据目录..."
mkdir -p $DATA_DIR
echo "启动容器..."
docker run -d -it \
--privileged=true \
--restart=always \
--name $CONTAINER_NAME \
-p $HOST_PORT:$CONTAINER_PORT \
-v $DATA_DIR:/app/ \
$IMAGE_NAME
if [ $? -eq 0 ]; then
echo "容器启动成功:$CONTAINER_NAME"
echo "访问地址:http://localhost:$HOST_PORT"
else
echo "容器启动失败"
exit 1
fi
}
# 显示菜单
show_menu() {
echo ""
echo "请选择操作:"
echo "1) 仅构建镜像"
echo "2) 仅运行容器"
echo "3) 构建镜像并运行容器"
echo "4) 退出"
echo ""
read -p "请输入选项 [1-4]: " option
echo ""
case $option in
1)
check_docker
build_image
;;
2)
check_docker
run_container
;;
3)
check_docker
build_image
run_container
;;
4)
exit 0
;;
*)
echo "无效选项"
show_menu
;;
esac
}
# 主程序
clear
echo "重庆服务平台Web服务部署脚本"
show_menu
将脚本保存为 deploy_chongqing_web.sh
给予执行权限:
chmod +x deploy_chongqing_web.sh
运行脚本:
./deploy_chongqing_web.sh