--创建主数据服务启动项目
This commit is contained in:
39
itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/Dockerfile
Normal file
39
itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/Dockerfile
Normal file
@ -0,0 +1,39 @@
|
||||
#FROM --platform=linux/arm64 docker.ges.bjgastx.com/openjdk-arm64:8-jre
|
||||
FROM docker.ges.bjgastx.com/jdk8u112:v1
|
||||
|
||||
|
||||
RUN mkdir -p /root/logs/java/ \
|
||||
&& mkdir -p /scm/logs/ \
|
||||
&& mkdir -p /opt/app/ \
|
||||
&& mkdir -p /uploadFile/ \
|
||||
&& mkdir -p /var/log/app \
|
||||
&& mkdir -p /opt/app/logs \
|
||||
&& mkdir -p /opt/agent/config
|
||||
|
||||
ENV TZ "Asia/Shanghai"
|
||||
|
||||
ADD ./skywalking-agent.jar /opt/agent/skywalking-agent.jar
|
||||
ADD ./agent.config /opt/agent/config/agent.config
|
||||
|
||||
RUN echo "set fileencodings=utf-8,gbk,gb2312,gb18030,cp936,latin1 \n set fenc=utf-8 \n set tenc=utf-8 \n set enc=utf-8 \n" |tee ~/.vimrc
|
||||
|
||||
|
||||
ARG JAR_FILE
|
||||
ARG PRO_FILE
|
||||
ARG SOURCE_NAME
|
||||
|
||||
ADD ./startApp.sh /opt/app/
|
||||
RUN chmod u+x /opt/app/*.sh
|
||||
ADD ./${SOURCE_NAME} /opt/app/app.jar
|
||||
RUN test -f /opt/app/app.jar || { echo "Error: JAR file not found at ${SOURCE_NAME}"; exit 1; }
|
||||
|
||||
#应用名称
|
||||
ENV APP_NAME=itc-pcitc-mdm
|
||||
#skywalking-oap-server地址
|
||||
ENV SKYWALKING_SERVER=10.10.2.102:11800
|
||||
ENV ENV_APP_FILE_PATH=/opt/app/app.jar
|
||||
ENV ENV_APP_PRO_FILE=local
|
||||
|
||||
EXPOSE 8096 5005
|
||||
|
||||
ENTRYPOINT ["/opt/app/startApp.sh"]
|
||||
126
itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/docker-mdm.sh
Normal file
126
itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/docker-mdm.sh
Normal file
@ -0,0 +1,126 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义变量
|
||||
CONTAINER_NAME="itc-pcitc-mdm"
|
||||
IMAGE_NAME="10.10.2.102/itc-pcitc-mdm"
|
||||
IMAGE_VERSION="2025-08-04-0940"
|
||||
IMAGE_FULL="$IMAGE_NAME:$IMAGE_VERSION"
|
||||
PORT=8096 # 服务暴露端口
|
||||
CONTAINER_PORT=8096 # 服务暴露端口
|
||||
TZ="Asia/Shanghai" # 时区设置
|
||||
# 环境变量配置
|
||||
ENV_APP_PRO_FILE="local"
|
||||
file="$CONTAINER_NAME-version.txt"
|
||||
|
||||
# 检查文件是否存在(假设 $file 是目标文件变量,已在别处定义)
|
||||
if [ ! -f "$file" ]; then
|
||||
echo "文件 $file 不存在"
|
||||
touch "$file" # 变量加引号,处理含空格的文件名
|
||||
echo "$IMAGE_FULL" >> "$file"
|
||||
echo "记录版本【$IMAGE_FULL】到 $file"
|
||||
else
|
||||
# 检查参数数量(建议移到脚本开头统一检查)
|
||||
if [ $# -eq 2 ]; then
|
||||
IMAGE_FULL="$IMAGE_NAME:$2"
|
||||
echo "$IMAGE_FULL" >> "$file"
|
||||
echo "记录版本【$IMAGE_FULL】到 $file"
|
||||
else
|
||||
# 修正赋值语法:等号两侧无空格
|
||||
last_version=$(tail -n 1 "$file")
|
||||
IMAGE_FULL="$last_version"
|
||||
# 建议添加对 $IMAGE_FULL 的后续处理(如使用该变量)
|
||||
fi
|
||||
fi
|
||||
|
||||
# 显示帮助信息
|
||||
show_help() {
|
||||
echo "使用方法: $0 [操作类型]"
|
||||
echo "操作类型:"
|
||||
echo " deploy - 部署并启动服务容器"
|
||||
echo " remove - 停止并删除容器及数据/日志目录"
|
||||
echo " logs - 查看容器日志"
|
||||
echo " help - 显示帮助信息"
|
||||
}
|
||||
|
||||
|
||||
|
||||
# 部署服务
|
||||
deploy_service() {
|
||||
echo "部署镜像【$IMAGE_FULL】"
|
||||
# 检查容器是否已存在,存在则停止并删除
|
||||
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
||||
echo "停止并删除现有容器: $CONTAINER_NAME"
|
||||
docker stop $CONTAINER_NAME >/dev/null
|
||||
docker rm $CONTAINER_NAME >/dev/null
|
||||
fi
|
||||
|
||||
# 启动服务容器
|
||||
echo "启动服务容器..."
|
||||
docker run -d --privileged --restart always \
|
||||
--name $CONTAINER_NAME \
|
||||
-p $PORT:$CONTAINER_PORT \
|
||||
-e ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE \
|
||||
$IMAGE_FULL
|
||||
|
||||
# 检查启动状态
|
||||
if [ "$(docker ps -aq -f name=$CONTAINER_NAME -f status=running)" ]; then
|
||||
echo "服务启动成功!"
|
||||
echo "容器名称: $CONTAINER_NAME"
|
||||
echo "访问地址: http://localhost:$PORT"
|
||||
echo "环境变量: ENV_APP_PRO_FILE=$ENV_APP_PRO_FILE"
|
||||
else
|
||||
echo "服务启动失败,日志如下:"
|
||||
docker logs $CONTAINER_NAME
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 删除服务
|
||||
remove_service() {
|
||||
# 检查容器是否存在
|
||||
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
||||
echo "停止容器: $CONTAINER_NAME"
|
||||
docker stop $CONTAINER_NAME >/dev/null
|
||||
|
||||
echo "删除容器: $CONTAINER_NAME"
|
||||
docker rm $CONTAINER_NAME >/dev/null
|
||||
else
|
||||
echo "容器 $CONTAINER_NAME 不存在"
|
||||
fi
|
||||
}
|
||||
|
||||
# 查看日志
|
||||
show_logs() {
|
||||
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
||||
echo "查看 $CONTAINER_NAME 容器日志 (按 Ctrl+C 退出)..."
|
||||
docker logs -f --tail 200 $CONTAINER_NAME
|
||||
else
|
||||
echo "容器 $CONTAINER_NAME 不存在"
|
||||
fi
|
||||
}
|
||||
|
||||
# 主逻辑
|
||||
if [ $# -lt 1 ]; then
|
||||
show_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
deploy)
|
||||
deploy_service
|
||||
;;
|
||||
remove)
|
||||
remove_service
|
||||
;;
|
||||
logs)
|
||||
show_logs
|
||||
;;
|
||||
help)
|
||||
show_help
|
||||
;;
|
||||
*)
|
||||
echo "无效的操作类型: $1"
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user