diff --git a/build/opt/agt/bin/start.sh b/build/opt/agt/bin/start.sh index ef1e877..00c748c 100644 --- a/build/opt/agt/bin/start.sh +++ b/build/opt/agt/bin/start.sh @@ -1,59 +1,84 @@ -#!/bin/sh +#!/bin/bash +set -e -[ -z "$2"] && branch='main' || branch=$2 +# ==== 配置区 ==== +MIRROR_URL="https://mirrors.aliyun.com/docker-ce" +COMPOSE_VERSION="2.29.2" +IMAGE_TAR="" +COMPOSE_FILE="../docker/docker-compose.yml" -# 使用说明,用来提示输入参数 -usage() { - echo "Usage: sh start.sh [system|user|auth]" - exit 1 +# ==== 检查 root 权限 ==== +if [ "$(id -u)" -ne 0 ]; then + echo "请使用 root 权限运行此脚本" + exit 1 +fi + +# ==== 检查并安装 Docker ==== +if ! command -v docker &> /dev/null; then + echo "[INFO] 未检测到 Docker,开始安装..." + if [ -f /etc/os-release ]; then + . /etc/os-release + if [[ "$ID" == "ubuntu" || "$ID" == "debian" ]]; then + apt-get update + apt-get install -y apt-transport-https ca-certificates curl software-properties-common + curl -fsSL ${MIRROR_URL}/linux/${ID}/gpg | apt-key add - + add-apt-repository \ + "deb [arch=amd64] ${MIRROR_URL}/linux/${ID} \ + $(lsb_release -cs) stable" + apt-get update + apt-get install -y docker-ce docker-ce-cli containerd.io + elif [[ "$ID" == "centos" || "$ID" == "rhel" ]]; then + yum install -y yum-utils device-mapper-persistent-data lvm2 + yum-config-manager --add-repo ${MIRROR_URL}/linux/centos/docker-ce.repo + yum install -y docker-ce docker-ce-cli containerd.io + else + echo "[ERROR] 当前系统不支持自动安装 Docker,请手动安装" + exit 1 + fi + fi + systemctl enable docker + systemctl start docker +else + echo "[INFO] 已检测到 Docker" +fi + +# ==== 配置 Docker 镜像加速器 ==== +echo "[INFO] 配置 Docker 镜像加速器..." +mkdir -p /etc/docker +cat > /etc/docker/daemon.json < /dev/null && ! docker compose version &> /dev/null; then + echo "[INFO] 未检测到 docker-compose,开始安装..." + curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose +else + echo "[INFO] 已检测到 docker-compose" +fi -# 启动程序模块(必须) -backend(){ - echo "begin copy agt-server " - cp ../agt-server.jar ./agt/jar/ - sudo docker stop agt-server - sudo docker rm agt-server - sudo docker rmi deploy_agt-server - sudo docker-compose up -d agt-server -} +# ==== 导入镜像 ==== +if [ -f "$IMAGE_TAR" ]; then + echo "[INFO] 导入镜像 $IMAGE_TAR ..." + docker load -i "$IMAGE_TAR" +fi -frontend(){ - echo "begin copy agt-server " - mkdir -p ./nginx/html/dist - rm -rf ./nginx/html/dist/* - rm -rf ./dist/* - cd dist - cp ../../dist.zip ./ - unzip ./dist.zip - cd .. - cp -rf ./dist/* ./nginx/html/dist/ -} - - -# 根据输入参数,选择执行对应方法,不输入则执行使用说明 -case "$1" in -"backend") - backend -;; -"frontend") - frontend -;; -"stop") - stop -;; -"rm") - rm -;; -*) - usage -;; -esac +# ==== 启动服务 ==== +if [ -f "$COMPOSE_FILE" ]; then + echo "[INFO] 使用 docker-compose 启动服务..." + docker-compose -f "$COMPOSE_FILE" up -d + echo "[SUCCESS] 应用已部署完成!" +else + echo "[WARN] 未找到 $COMPOSE_FILE,跳过服务启动" +fi diff --git a/build/opt/agt/docker/agt/config/application-test.yaml b/build/opt/agt/docker/agt/config/application-test.yaml new file mode 100644 index 0000000..4e90d7c --- /dev/null +++ b/build/opt/agt/docker/agt/config/application-test.yaml @@ -0,0 +1,3 @@ +# 设置当前项目所有自定义的配置 +agt: + domain: http://192.168.9.50 \ No newline at end of file diff --git a/build/opt/agt/docker/docker-compose.yml b/build/opt/agt/docker/docker-compose.yml index a3b8c06..66d1f4f 100644 --- a/build/opt/agt/docker/docker-compose.yml +++ b/build/opt/agt/docker/docker-compose.yml @@ -9,6 +9,7 @@ services: ports: - "3306:3306" volumes: + - ./mysql/db:/docker-entrypoint-initdb.d - ./mysql/conf:/etc/mysql/conf.d - ./mysql/logs:/logs - ./mysql/data:/var/lib/mysql @@ -64,6 +65,8 @@ services: - agt-mysql volumes: - /usr/local/licGen/log/:/usr/local/licGen/log/ + - ./agt/config/application-test.yaml:/app/config/application-test.yaml + command: ["--spring.config.location=/app/config/application-test.yaml"] links: - agt-redis - agt-mysql