From fb8aa13195be8a1bccc3ce6daf79e0bc2b768765 Mon Sep 17 00:00:00 2001 From: jingrow Date: Thu, 7 Aug 2025 23:51:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install_jsite.sh | 90 ++++++++++++------------------------------------ 1 file changed, 22 insertions(+), 68 deletions(-) diff --git a/install_jsite.sh b/install_jsite.sh index ed2e7c2..5f998ad 100755 --- a/install_jsite.sh +++ b/install_jsite.sh @@ -525,75 +525,23 @@ install_traefik() { cd /home/jingrow - # 创建traefik目录结构 - if [ ! -d "/home/jingrow/traefik" ]; then - mkdir -p /home/jingrow/traefik/conf.d - log_success "创建traefik目录结构" + # 检查traefik目录是否已存在 + if [ -d "/home/jingrow/traefik-docker" ]; then + if [ "$FORCE_UPDATE" = true ]; then + log_warning "traefik-docker目录已存在,强制更新..." + rm -rf /home/jingrow/traefik-docker + else + log_warning "traefik-docker目录已存在,跳过克隆" + return + fi fi - # 创建acme.json文件 - if [ ! -f "/home/jingrow/traefik/acme.json" ]; then - touch /home/jingrow/traefik/acme.json - chmod 600 /home/jingrow/traefik/acme.json - log_success "创建acme.json文件" - fi - - # 创建traefik.yml配置文件 - cat > /home/jingrow/traefik/traefik.yml << 'EOF' -entryPoints: - web: - address: ":80" - websecure: - address: ":443" - -api: - dashboard: true - insecure: true # 生产环境建议关闭 - -providers: - docker: - exposedByDefault: false - file: - directory: /etc/traefik/conf.d - watch: true - -certificatesResolvers: - myresolver: - acme: - email: support@jingrow.com - storage: acme.json - httpChallenge: - entryPoint: web -EOF - log_success "创建traefik.yml配置文件" - - # 创建docker-compose.yml文件 - cat > /home/jingrow/traefik/docker-compose.yml << 'EOF' -services: - traefik: - # The official v3 Traefik docker image - image: traefik:v3.4 - container_name: traefik - restart: always - # Enables the web UI and tells Traefik to listen to docker - command: --api.insecure=true --providers.docker - ports: - # The HTTP port - - "80:80" - - "443:443" - # The Web UI (enabled by --api.insecure=true) - - "8080:8080" - volumes: - # So that Traefik can listen to the Docker events - - /var/run/docker.sock:/var/run/docker.sock - - ./traefik.yml:/etc/traefik/traefik.yml:ro - - ./conf.d:/etc/traefik/conf.d:ro - - ./acme.json:/etc/traefik/acme.json -EOF - log_success "创建docker-compose.yml文件" + # 从Git仓库克隆traefik配置 + su - jingrow -c "cd /home/jingrow && git clone http://git.jingrow.com:3000/go/traefik-docker" + log_success "traefik项目克隆完成" # 设置目录权限 - chown -R jingrow:jingrow /home/jingrow/traefik + chown -R jingrow:jingrow /home/jingrow/traefik-docker log_success "设置traefik目录权限" } @@ -640,10 +588,16 @@ install_docker() { start_traefik() { log_info "启动traefik服务..." - cd /home/jingrow/traefik + cd /home/jingrow/traefik-docker + + # 检查docker-compose.yml文件是否存在 + if [ ! -f "/home/jingrow/traefik-docker/docker-compose.yml" ]; then + log_error "docker-compose.yml文件不存在,请检查traefik项目是否正确克隆" + return 1 + fi # 使用jingrow用户启动traefik - su - jingrow -c "cd /home/jingrow/traefik && docker compose up -d" + su - jingrow -c "cd /home/jingrow/traefik-docker && docker compose up -d" log_success "traefik服务启动完成" } @@ -673,7 +627,7 @@ show_deployment_info() { echo " - jsite目录: /home/jingrow/jsite" echo " - 项目目录: /home/jingrow/jsite/$PROJECT_NAME" echo " - 项目端口: $(get_available_port "$PROJECT_NAME")" - echo " - Traefik目录: /home/jingrow/traefik" + echo " - Traefik目录: /home/jingrow/traefik-docker" echo " - Traefik管理界面: http://localhost:8080" echo " - PM2配置文件: /home/jingrow/jsite/$PROJECT_NAME/ecosystem.config.js" echo " - PM2日志目录: /home/jingrow/jsite/$PROJECT_NAME/logs"