From dd086acb27b525c964b5da1f1e12f065a86d15c1 Mon Sep 17 00:00:00 2001 From: "ipcjs.mac4" Date: Thu, 16 Oct 2025 18:46:49 +0800 Subject: [PATCH 01/13] wip: add web-downloader --- web-downloader/.env | 1 + web-downloader/compose.yaml | 22 +++++++++++++++++++ web-downloader/web-downloader.sh | 36 ++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 120000 web-downloader/.env create mode 100644 web-downloader/compose.yaml create mode 100644 web-downloader/web-downloader.sh diff --git a/web-downloader/.env b/web-downloader/.env new file mode 120000 index 0000000..0ef0888 --- /dev/null +++ b/web-downloader/.env @@ -0,0 +1 @@ +../.env.default \ No newline at end of file diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml new file mode 100644 index 0000000..ea43e99 --- /dev/null +++ b/web-downloader/compose.yaml @@ -0,0 +1,22 @@ +services: + web-downloader-track: + image: alpine + command: /home/docker/web-downloader/web-downloader.sh + environment: + - TEAMCITY_TAG=${TRACK_WEB_VERSION:?required} + - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release + - TEAMCITY_BUILD_ZIP_NAME=maintain.zip + - NGINX_HTML_DIR_NAME=track + volumes: + - "${DATA_DIR:-/data}/nginx/html:/data/nginx/html" + configs: + - source: web-downloader.sh + target: /home/docker/web-downloader/web-downloader.sh + - source: teamcity-download-artifact.sh + target: /home/docker/projects/teamcity-download-artifact.sh + +configs: + web-downloader.sh: + file: ./web-downloader.sh + teamcity-download-artifact.sh: + file: ../projects/teamcity-download-artifact.sh diff --git a/web-downloader/web-downloader.sh b/web-downloader/web-downloader.sh new file mode 100644 index 0000000..63a5035 --- /dev/null +++ b/web-downloader/web-downloader.sh @@ -0,0 +1,36 @@ +#!/bin/sh +set -e + +if [ -z "${TEAMCITY_BUILD_NAME}" ]; then + echo "Please set these environment variables:" + echo "TEAMCITY_BUILD_NAME, TEAMCITY_TAG, TEAMCITY_BUILD_ZIP_NAME, NGINX_HTML_DIR_NAME" + exit 1 +fi + +cd /data/nginx/html || exit 1 + +version_file="${NGINX_HTML_DIR_NAME}/.version" + +# Check if the version already exists +if [ -f "$version_file" ]; then + current_version=$(cat "$version_file") + if [ "$current_version" = "${TEAMCITY_TAG}" ]; then + echo "Version ${TEAMCITY_TAG} already exists" + exit 0 + fi +fi + +# Remove the existing directory +if [ -e "${NGINX_HTML_DIR_NAME}" ]; then + rm -rf "${NGINX_HTML_DIR_NAME}" +fi + +# Download the new version +/home/docker/projects/teamcity-download-artifact.sh --build="${TEAMCITY_BUILD_NAME}" --tag="${TEAMCITY_TAG}" +unzip "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" +unzip "${TEAMCITY_BUILD_ZIP_NAME}" -d "${NGINX_HTML_DIR_NAME}" + +# Clean up +rm -f "${TEAMCITY_BUILD_ZIP_NAME}" +# rm "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" +echo "${TEAMCITY_TAG}" > "$version_file" From 4116435c6c3652180314234fca14ce187e853bb4 Mon Sep 17 00:00:00 2001 From: cli Date: Thu, 16 Oct 2025 23:01:38 -0400 Subject: [PATCH 02/13] wip: xx --- web-downloader/compose.yaml | 3 ++- web-downloader/web-downloader.sh | 0 2 files changed, 2 insertions(+), 1 deletion(-) mode change 100644 => 100755 web-downloader/web-downloader.sh diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml index ea43e99..ae6e180 100644 --- a/web-downloader/compose.yaml +++ b/web-downloader/compose.yaml @@ -1,7 +1,8 @@ services: web-downloader-track: image: alpine - command: /home/docker/web-downloader/web-downloader.sh + # command: /home/docker/web-downloader/web-downloader.sh + command: /home/docker/projects/teamcity-download-artifact.sh environment: - TEAMCITY_TAG=${TRACK_WEB_VERSION:?required} - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release diff --git a/web-downloader/web-downloader.sh b/web-downloader/web-downloader.sh old mode 100644 new mode 100755 From 46adeea08afe559b9cbd15b8a7b71d63dd3f8090 Mon Sep 17 00:00:00 2001 From: cli Date: Fri, 17 Oct 2025 02:19:06 -0400 Subject: [PATCH 03/13] fix: `no such file or directory` --- projects/teamcity-download-artifact.sh | 2 +- web-downloader/compose.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/teamcity-download-artifact.sh b/projects/teamcity-download-artifact.sh index f5388c8..ea221e5 100755 --- a/projects/teamcity-download-artifact.sh +++ b/projects/teamcity-download-artifact.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # 默认使用名为artifacts的token, 权限较小(被设置为: `: View build runtime parameters and data`) # @see http://th-ci.transcodegroup.cn:9080/profile.html?item=accessTokens diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml index ae6e180..78db9e6 100644 --- a/web-downloader/compose.yaml +++ b/web-downloader/compose.yaml @@ -1,10 +1,10 @@ services: web-downloader-track: - image: alpine - # command: /home/docker/web-downloader/web-downloader.sh - command: /home/docker/projects/teamcity-download-artifact.sh + image: alpine/curl + command: /home/docker/web-downloader/web-downloader.sh environment: - - TEAMCITY_TAG=${TRACK_WEB_VERSION:?required} + # tag starts with 'v', eg: v1.53.0 + - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release - TEAMCITY_BUILD_ZIP_NAME=maintain.zip - NGINX_HTML_DIR_NAME=track From f1d6b16cf54478a5c6acf730903494027c24839a Mon Sep 17 00:00:00 2001 From: cli Date: Fri, 17 Oct 2025 02:45:22 -0400 Subject: [PATCH 04/13] wip: add bus --- README.md | 7 +++++++ web-downloader/compose-base.yaml | 8 ++++++++ web-downloader/compose-bus.yaml | 11 +++++++++++ web-downloader/compose-track.yaml | 11 +++++++++++ web-downloader/compose.yaml | 23 ----------------------- 5 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 web-downloader/compose-base.yaml create mode 100644 web-downloader/compose-bus.yaml create mode 100644 web-downloader/compose-track.yaml delete mode 100644 web-downloader/compose.yaml diff --git a/README.md b/README.md index 63e1a51..cf127d3 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,13 @@ docker compose config > compose-stack.yaml ### 4. 下载前端文件 +#### 使用Docker自动下载 + +- [compose-track.yaml](./web-downloader/compose-track.yaml): 自动下载track +- [compose-bus.yaml](./web-downloader/compose-bus.yaml): 自动下载bus + +#### 手动下载 + 部署distar等项目的前端: [说明文件](projects/README.md) diff --git a/web-downloader/compose-base.yaml b/web-downloader/compose-base.yaml new file mode 100644 index 0000000..eb109cc --- /dev/null +++ b/web-downloader/compose-base.yaml @@ -0,0 +1,8 @@ +services: + web-downloader-base: + image: alpine/curl + command: /home/docker/web-downloader/web-downloader.sh + volumes: + - "${DATA_DIR:-/data}/nginx/html:/data/nginx/html" + - ./web-downloader.sh:/home/docker/web-downloader/web-downloader.sh + - ../projects/teamcity-download-artifact.sh:/home/docker/projects/teamcity-download-artifact.sh diff --git a/web-downloader/compose-bus.yaml b/web-downloader/compose-bus.yaml new file mode 100644 index 0000000..90aa4b2 --- /dev/null +++ b/web-downloader/compose-bus.yaml @@ -0,0 +1,11 @@ +services: + web-downloader-bus: + extends: + file: ./compose-base.yaml + service: web-downloader-base + environment: + # tag starts with 'v', eg: v5.30.0 + - TEAMCITY_TAG=v${BUS_WEB_VERSION:?required} + - TEAMCITY_BUILD_NAME=CityBusVueAdmin_Release + - TEAMCITY_BUILD_ZIP_NAME=bus.zip + - NGINX_HTML_DIR_NAME=bus diff --git a/web-downloader/compose-track.yaml b/web-downloader/compose-track.yaml new file mode 100644 index 0000000..690885b --- /dev/null +++ b/web-downloader/compose-track.yaml @@ -0,0 +1,11 @@ +services: + web-downloader-track: + extends: + file: ./compose-base.yaml + service: web-downloader-base + environment: + # tag starts with 'v', eg: v1.53.0 + - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} + - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release + - TEAMCITY_BUILD_ZIP_NAME=maintain.zip + - NGINX_HTML_DIR_NAME=track diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml deleted file mode 100644 index 78db9e6..0000000 --- a/web-downloader/compose.yaml +++ /dev/null @@ -1,23 +0,0 @@ -services: - web-downloader-track: - image: alpine/curl - command: /home/docker/web-downloader/web-downloader.sh - environment: - # tag starts with 'v', eg: v1.53.0 - - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} - - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release - - TEAMCITY_BUILD_ZIP_NAME=maintain.zip - - NGINX_HTML_DIR_NAME=track - volumes: - - "${DATA_DIR:-/data}/nginx/html:/data/nginx/html" - configs: - - source: web-downloader.sh - target: /home/docker/web-downloader/web-downloader.sh - - source: teamcity-download-artifact.sh - target: /home/docker/projects/teamcity-download-artifact.sh - -configs: - web-downloader.sh: - file: ./web-downloader.sh - teamcity-download-artifact.sh: - file: ../projects/teamcity-download-artifact.sh From ad7b79d26362b01057c4acaa7c7ccdde84db53af Mon Sep 17 00:00:00 2001 From: "ipcjs.mac4" Date: Fri, 17 Oct 2025 14:58:31 +0800 Subject: [PATCH 05/13] =?UTF-8?q?wip:=20=E6=9B=B4=E6=96=B0readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ web-downloader/web-downloader.sh | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf127d3..255d9e8 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ git clone https://github.com/TranscodeGroup/docker.git /home/docker - [video-storage](./examples/video-storage/compose.yaml): RTP存储 - [video-stream](./examples/video-stream/compose.yaml): RTP视频 - [track](./examples/track/compose.yaml): Tracker V2单机部署 +- etc. ### 3. 配置`.env` @@ -40,6 +41,8 @@ docker compose config > compose-stack.yaml #### 使用Docker自动下载 +在`/home/docker-compose/compose.yaml`文件中, `include`如下服务, 即可自动下载前端 + - [compose-track.yaml](./web-downloader/compose-track.yaml): 自动下载track - [compose-bus.yaml](./web-downloader/compose-bus.yaml): 自动下载bus diff --git a/web-downloader/web-downloader.sh b/web-downloader/web-downloader.sh index 63a5035..cafc664 100755 --- a/web-downloader/web-downloader.sh +++ b/web-downloader/web-downloader.sh @@ -9,7 +9,7 @@ fi cd /data/nginx/html || exit 1 -version_file="${NGINX_HTML_DIR_NAME}/.version" +version_file="${NGINX_HTML_DIR_NAME}/.version-for-web-downloader" # Check if the version already exists if [ -f "$version_file" ]; then @@ -34,3 +34,5 @@ unzip "${TEAMCITY_BUILD_ZIP_NAME}" -d "${NGINX_HTML_DIR_NAME}" rm -f "${TEAMCITY_BUILD_ZIP_NAME}" # rm "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" echo "${TEAMCITY_TAG}" > "$version_file" + +echo "Downloaded version ${TEAMCITY_TAG}" From b715c84ebc5a032bb18b8585c787aafaf6892d63 Mon Sep 17 00:00:00 2001 From: cli Date: Fri, 17 Oct 2025 03:11:06 -0400 Subject: [PATCH 06/13] wip: xx --- web-downloader/web-downloader.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/web-downloader/web-downloader.sh b/web-downloader/web-downloader.sh index cafc664..c1dcffc 100755 --- a/web-downloader/web-downloader.sh +++ b/web-downloader/web-downloader.sh @@ -20,19 +20,20 @@ if [ -f "$version_file" ]; then fi fi -# Remove the existing directory -if [ -e "${NGINX_HTML_DIR_NAME}" ]; then - rm -rf "${NGINX_HTML_DIR_NAME}" -fi - # Download the new version /home/docker/projects/teamcity-download-artifact.sh --build="${TEAMCITY_BUILD_NAME}" --tag="${TEAMCITY_TAG}" + +# Unzip unzip "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" +if [ -e "${NGINX_HTML_DIR_NAME}" ]; then + rm -rf "${NGINX_HTML_DIR_NAME}" +fi unzip "${TEAMCITY_BUILD_ZIP_NAME}" -d "${NGINX_HTML_DIR_NAME}" - # Clean up rm -f "${TEAMCITY_BUILD_ZIP_NAME}" # rm "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" echo "${TEAMCITY_TAG}" > "$version_file" +echo echo "Downloaded version ${TEAMCITY_TAG}" +echo From 85a6d8bf64b3081a290633d826ffe1707608eb41 Mon Sep 17 00:00:00 2001 From: cli Date: Fri, 17 Oct 2025 03:27:24 -0400 Subject: [PATCH 07/13] wip: refactor to use override --- web-downloader/compose-base.yaml | 8 ------- web-downloader/compose-bus.yaml | 11 --------- web-downloader/compose-track.yaml | 11 --------- web-downloader/compose.bus.yaml | 4 ++++ web-downloader/compose.track.yaml | 4 ++++ web-downloader/compose.yaml | 37 +++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 30 deletions(-) delete mode 100644 web-downloader/compose-base.yaml delete mode 100644 web-downloader/compose-bus.yaml delete mode 100644 web-downloader/compose-track.yaml create mode 100644 web-downloader/compose.bus.yaml create mode 100644 web-downloader/compose.track.yaml create mode 100644 web-downloader/compose.yaml diff --git a/web-downloader/compose-base.yaml b/web-downloader/compose-base.yaml deleted file mode 100644 index eb109cc..0000000 --- a/web-downloader/compose-base.yaml +++ /dev/null @@ -1,8 +0,0 @@ -services: - web-downloader-base: - image: alpine/curl - command: /home/docker/web-downloader/web-downloader.sh - volumes: - - "${DATA_DIR:-/data}/nginx/html:/data/nginx/html" - - ./web-downloader.sh:/home/docker/web-downloader/web-downloader.sh - - ../projects/teamcity-download-artifact.sh:/home/docker/projects/teamcity-download-artifact.sh diff --git a/web-downloader/compose-bus.yaml b/web-downloader/compose-bus.yaml deleted file mode 100644 index 90aa4b2..0000000 --- a/web-downloader/compose-bus.yaml +++ /dev/null @@ -1,11 +0,0 @@ -services: - web-downloader-bus: - extends: - file: ./compose-base.yaml - service: web-downloader-base - environment: - # tag starts with 'v', eg: v5.30.0 - - TEAMCITY_TAG=v${BUS_WEB_VERSION:?required} - - TEAMCITY_BUILD_NAME=CityBusVueAdmin_Release - - TEAMCITY_BUILD_ZIP_NAME=bus.zip - - NGINX_HTML_DIR_NAME=bus diff --git a/web-downloader/compose-track.yaml b/web-downloader/compose-track.yaml deleted file mode 100644 index 690885b..0000000 --- a/web-downloader/compose-track.yaml +++ /dev/null @@ -1,11 +0,0 @@ -services: - web-downloader-track: - extends: - file: ./compose-base.yaml - service: web-downloader-base - environment: - # tag starts with 'v', eg: v1.53.0 - - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} - - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release - - TEAMCITY_BUILD_ZIP_NAME=maintain.zip - - NGINX_HTML_DIR_NAME=track diff --git a/web-downloader/compose.bus.yaml b/web-downloader/compose.bus.yaml new file mode 100644 index 0000000..75189a0 --- /dev/null +++ b/web-downloader/compose.bus.yaml @@ -0,0 +1,4 @@ +services: + web-downloader-bus: + # Remove the profiles field to enable the service + profiles: !reset null diff --git a/web-downloader/compose.track.yaml b/web-downloader/compose.track.yaml new file mode 100644 index 0000000..ee24179 --- /dev/null +++ b/web-downloader/compose.track.yaml @@ -0,0 +1,4 @@ +services: + web-downloader-track: + # Remove the profiles field to enable the service + profiles: !reset null diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml new file mode 100644 index 0000000..2f1dbf9 --- /dev/null +++ b/web-downloader/compose.yaml @@ -0,0 +1,37 @@ +services: + web-downloader-base: + # All web-downloader-base/bus/track services are disabled by default + profiles: ["disabled"] + image: alpine/curl + command: /home/docker/web-downloader/web-downloader.sh + volumes: + - "${DATA_DIR:-/data}/nginx/html:/data/nginx/html" + configs: + - source: web-downloader.sh + target: /home/docker/web-downloader/web-downloader.sh + - source: teamcity-download-artifact.sh + target: /home/docker/projects/teamcity-download-artifact.sh + + web-downloader-bus: + extends: web-downloader-base + environment: + # tag starts with 'v', eg: v5.30.0 + - TEAMCITY_TAG=v${BUS_WEB_VERSION:?required} + - TEAMCITY_BUILD_NAME=CityBusVueAdmin_Release + - TEAMCITY_BUILD_ZIP_NAME=bus.zip + - NGINX_HTML_DIR_NAME=bus + + web-downloader-track: + extends: web-downloader-base + environment: + # tag starts with 'v', eg: v1.53.0 + - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} + - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release + - TEAMCITY_BUILD_ZIP_NAME=maintain.zip + - NGINX_HTML_DIR_NAME=track + +configs: + web-downloader.sh: + file: ./web-downloader.sh + teamcity-download-artifact.sh: + file: ../projects/teamcity-download-artifact.sh From 53572ef79ee67896baf6c9287428bb6ee8472258 Mon Sep 17 00:00:00 2001 From: cli Date: Fri, 17 Oct 2025 06:30:26 -0400 Subject: [PATCH 08/13] =?UTF-8?q?wip:=20=E6=B7=BB=E5=8A=A0=E8=A6=86?= =?UTF-8?q?=E5=86=99=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.default | 6 +++++- web-downloader/compose.yaml | 6 ++++++ web-downloader/web-downloader.sh | 14 +++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.env.default b/.env.default index c1c5f89..6eb0788 100644 --- a/.env.default +++ b/.env.default @@ -25,10 +25,13 @@ WEB_BASE_URL='' # https://livedvr.tripsdd.com DATA_DIR=/data # docker仓库的目录, 不建议在compose文件中引用docker仓库的绝对路径, 建议使用configs替代: https://docs.docker.com/reference/compose-file/configs/ DOCKER_DIR=/home/docker +DOCKER_COMPOSE_DIR=/home/docker-compose ## 版本号, 设为latest则使用最新版 # bus前端版本 BUS_WEB_VERSION=5.30.0 +# TODO: 是不是不应该填写默认值? +BUS_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/bus-override # bus的后端, gateway-web和gateway-dispatch共用一个版本号 BUS_GATEWAY_VERSION=1.21.1 BUS_GATEWAY_808_2019_VERSION=25.8.25 @@ -36,6 +39,7 @@ BUS_GATEWAY_JSATL12_VERSION=23.1.21 BUS_GATEWAY_CALCULATION_VERSION=1.17.0 # track前端版本 TRACK_WEB_VERSION=1.53.0 +TRACK_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/track-override TRACK_MAINTAIN_VERSION=1.45.0 TRACK_JTT808_VERSION=1.18.0 @@ -92,7 +96,7 @@ MAINTAIN_PORT='8080' # - access/ras_key|ras_key.pub: 访问密钥的公私钥对 # - refresh/ras_key|ras_key.pub: 刷新密钥的公私钥对 # - ip2region.xdb: ip到区域的映射数据, 手动下载连接: https://raw.githubusercontent.com/lionsoul2014/ip2region/master/data/ip2region.xdb -MAINTAIN_TOKEN_DIR='/home/docker-compose/token' +MAINTAIN_TOKEN_DIR=${DOCKER_COMPOSE_DIR}/token ## MYSQL, 必填 MYSQL_HOST='mysql8' # mysql8 | ${SERVER_IP_INTERNAL} | ${SERVER_IP_PUBLIC} diff --git a/web-downloader/compose.yaml b/web-downloader/compose.yaml index 2f1dbf9..fd024f6 100644 --- a/web-downloader/compose.yaml +++ b/web-downloader/compose.yaml @@ -14,21 +14,27 @@ services: web-downloader-bus: extends: web-downloader-base + volumes: + - ${BUS_WEB_OVERRIDE_DIR:?required}:${BUS_WEB_OVERRIDE_DIR:?required} environment: # tag starts with 'v', eg: v5.30.0 - TEAMCITY_TAG=v${BUS_WEB_VERSION:?required} - TEAMCITY_BUILD_NAME=CityBusVueAdmin_Release - TEAMCITY_BUILD_ZIP_NAME=bus.zip - NGINX_HTML_DIR_NAME=bus + - NGINX_HTML_OVERRIDE_DIR=${BUS_WEB_OVERRIDE_DIR:?required} web-downloader-track: extends: web-downloader-base + volumes: + - ${TRACK_WEB_OVERRIDE_DIR:?required}:${TRACK_WEB_OVERRIDE_DIR:?required} environment: # tag starts with 'v', eg: v1.53.0 - TEAMCITY_TAG=v${TRACK_WEB_VERSION:?required} - TEAMCITY_BUILD_NAME=MaintainVbenAdmin_Release - TEAMCITY_BUILD_ZIP_NAME=maintain.zip - NGINX_HTML_DIR_NAME=track + - NGINX_HTML_OVERRIDE_DIR=${TRACK_WEB_OVERRIDE_DIR:?required} configs: web-downloader.sh: diff --git a/web-downloader/web-downloader.sh b/web-downloader/web-downloader.sh index c1dcffc..23620fe 100755 --- a/web-downloader/web-downloader.sh +++ b/web-downloader/web-downloader.sh @@ -3,18 +3,28 @@ set -e if [ -z "${TEAMCITY_BUILD_NAME}" ]; then echo "Please set these environment variables:" - echo "TEAMCITY_BUILD_NAME, TEAMCITY_TAG, TEAMCITY_BUILD_ZIP_NAME, NGINX_HTML_DIR_NAME" + echo "TEAMCITY_BUILD_NAME, TEAMCITY_TAG, TEAMCITY_BUILD_ZIP_NAME, NGINX_HTML_DIR_NAME, NGINX_HTML_OVERRIDE_DIR" exit 1 fi cd /data/nginx/html || exit 1 version_file="${NGINX_HTML_DIR_NAME}/.version-for-web-downloader" +override_dir="${NGINX_HTML_OVERRIDE_DIR:-"${NGINX_HTML_DIR_NAME}-override"}" + +cp_override_files () { + if [ -d "$override_dir" ]; then + echo "Copy $override_dir into ${NGINX_HTML_DIR_NAME}..." + cp -vRT "$override_dir" "${NGINX_HTML_DIR_NAME}" + fi +} + # Check if the version already exists if [ -f "$version_file" ]; then current_version=$(cat "$version_file") if [ "$current_version" = "${TEAMCITY_TAG}" ]; then + cp_override_files echo "Version ${TEAMCITY_TAG} already exists" exit 0 fi @@ -29,6 +39,8 @@ if [ -e "${NGINX_HTML_DIR_NAME}" ]; then rm -rf "${NGINX_HTML_DIR_NAME}" fi unzip "${TEAMCITY_BUILD_ZIP_NAME}" -d "${NGINX_HTML_DIR_NAME}" +cp_override_files + # Clean up rm -f "${TEAMCITY_BUILD_ZIP_NAME}" # rm "${TEAMCITY_BUILD_NAME}-${TEAMCITY_TAG}.zip" From b5ea00dbaee11776aaccd4113c881fea362482d2 Mon Sep 17 00:00:00 2001 From: cli Date: Mon, 20 Oct 2025 06:35:52 -0400 Subject: [PATCH 09/13] =?UTF-8?q?wip:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.default | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.env.default b/.env.default index 6eb0788..8ba6b6a 100644 --- a/.env.default +++ b/.env.default @@ -30,7 +30,7 @@ DOCKER_COMPOSE_DIR=/home/docker-compose ## 版本号, 设为latest则使用最新版 # bus前端版本 BUS_WEB_VERSION=5.30.0 -# TODO: 是不是不应该填写默认值? +# bus前端文件复写目录, 该目录中的文件会在compose被up时被复制到bus前端目录 BUS_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/bus-override # bus的后端, gateway-web和gateway-dispatch共用一个版本号 BUS_GATEWAY_VERSION=1.21.1 @@ -39,6 +39,7 @@ BUS_GATEWAY_JSATL12_VERSION=23.1.21 BUS_GATEWAY_CALCULATION_VERSION=1.17.0 # track前端版本 TRACK_WEB_VERSION=1.53.0 +# track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录 TRACK_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/track-override TRACK_MAINTAIN_VERSION=1.45.0 TRACK_JTT808_VERSION=1.18.0 From f13a20c0462c50ffac28a1cb7dc485bca9ea120b Mon Sep 17 00:00:00 2001 From: cli Date: Tue, 21 Oct 2025 06:07:15 -0400 Subject: [PATCH 10/13] =?UTF-8?q?wip:=20=E4=BD=BF=E7=94=A8index-seo.html?= =?UTF-8?q?=E6=9D=A5=E5=A4=84=E7=90=86=E7=88=AC=E8=99=AB=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=B8=8D=E5=88=B0JS=E6=9B=B4=E6=96=B0=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E7=9A=84=E6=A0=87=E9=A2=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nginx/conf/conf.d/track.conf.template | 12 +++++++++++- nginx/conf/nginx.conf | 11 +++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/nginx/conf/conf.d/track.conf.template b/nginx/conf/conf.d/track.conf.template index 9abbd93..5bff31c 100644 --- a/nginx/conf/conf.d/track.conf.template +++ b/nginx/conf/conf.d/track.conf.template @@ -18,8 +18,18 @@ server { # 平台前端 location / { - alias /usr/share/nginx/html/track/; + root /usr/share/nginx/html/track; index index.html index.htm; + + if ($is_crawler) { + rewrite ^/(index.html)?$ /index-seo.html last; + } + } + + # 平台前端, 交给爬虫读取的index文件 + location = /index-seo.html { + root /usr/share/nginx/html/track; + try_files /index-seo.html /index.html =404; } location /track { diff --git a/nginx/conf/nginx.conf b/nginx/conf/nginx.conf index d916135..5ed9219 100644 --- a/nginx/conf/nginx.conf +++ b/nginx/conf/nginx.conf @@ -64,6 +64,17 @@ http { '' close; } + # 检测是否是爬虫 + map $http_user_agent $is_crawler { + default 0; + # 搜索引擎 + ~*(Googlebot|Bingbot|Baiduspider|Slurp|DuckDuckBot|Sogou|360Spider|Yandex|Applebot) 1; + # 社交媒体 + ~*(facebookexternalhit|Twitterbot|LinkedInBot|Slackbot|Discordbot|Linespider|Bytespider) 1; + # 新兴AI + ~*(GPTBot|ChatGPT-User|ClaudeBot|PerplexityBot|CCBot) 1; + } + # Docker Compose的默认DNS # https://stackoverflow.com/questions/35744650/docker-network-nginx-resolver resolver 127.0.0.11; From 54481f1dbb7c49c826a0775a37dc85ba63495d53 Mon Sep 17 00:00:00 2001 From: cli Date: Wed, 22 Oct 2025 00:11:00 -0400 Subject: [PATCH 11/13] =?UTF-8?q?wip:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=92=8Cdistar=E9=83=A8=E7=BD=B2=E8=84=9A=E6=9C=AC,?= =?UTF-8?q?=20=E4=BD=BF=E7=94=A8index-seo.html=E6=9D=A5=E4=BA=A4=E7=BB=99?= =?UTF-8?q?=E7=88=AC=E8=99=AB=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.default | 10 ++++++++-- README.md | 7 ++++--- projects/distar-beta-deploy.sh | 17 ----------------- projects/distar/index-seo.html | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 projects/distar/index-seo.html diff --git a/.env.default b/.env.default index 8ba6b6a..5599b81 100644 --- a/.env.default +++ b/.env.default @@ -30,7 +30,8 @@ DOCKER_COMPOSE_DIR=/home/docker-compose ## 版本号, 设为latest则使用最新版 # bus前端版本 BUS_WEB_VERSION=5.30.0 -# bus前端文件复写目录, 该目录中的文件会在compose被up时被复制到bus前端目录 +# bus前端文件复写目录, 该目录中的文件会在compose被up时被复制到bus前端目录, 通常可以复写如下文件: +# - _app.config.js: 前端配置文件 BUS_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/bus-override # bus的后端, gateway-web和gateway-dispatch共用一个版本号 BUS_GATEWAY_VERSION=1.21.1 @@ -39,7 +40,12 @@ BUS_GATEWAY_JSATL12_VERSION=23.1.21 BUS_GATEWAY_CALCULATION_VERSION=1.17.0 # track前端版本 TRACK_WEB_VERSION=1.53.0 -# track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录 +# track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录, 通常可以复写如下文件: +# - _app.config.js: 前端配置文件 +# - index-seo.html: 交给搜索引擎/爬虫读取的静态页面 +# - favicon.ico: ico图标 +# - favicon.png: png图标 +# - logo.png: 大图标 TRACK_WEB_OVERRIDE_DIR=${DOCKER_COMPOSE_DIR}/track-override TRACK_MAINTAIN_VERSION=1.45.0 TRACK_JTT808_VERSION=1.18.0 diff --git a/README.md b/README.md index 255d9e8..3489468 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,11 @@ docker compose config > compose-stack.yaml #### 使用Docker自动下载 -在`/home/docker-compose/compose.yaml`文件中, `include`如下服务, 即可自动下载前端 +在`/home/docker-compose/compose.yaml`文件中, `include`如下服务, 即可自动下载前端: -- [compose-track.yaml](./web-downloader/compose-track.yaml): 自动下载track -- [compose-bus.yaml](./web-downloader/compose-bus.yaml): 自动下载bus +- [compose.yaml](./web-downloader/compose.yaml): 自动下载的基础配置 +- [compose.track.yaml](./web-downloader/compose.track.yaml): 自动下载track的配置, 可选; +- [compose.bus.yaml](./web-downloader/compose.bus.yaml): 自动下载bus的配置, 可选; #### 手动下载 diff --git a/projects/distar-beta-deploy.sh b/projects/distar-beta-deploy.sh index 6398807..00b29d8 100755 --- a/projects/distar-beta-deploy.sh +++ b/projects/distar-beta-deploy.sh @@ -120,22 +120,5 @@ cd .. # 复制配置文件 cp -Rfv "$CONFIG_DIR"/* "$target_dir" -# 指定要处理的HTML文件 -cd "$target_dir" -html_file="index.html" - -# 使用sed命令进行文本替换, 网站微缩图 -OLD_TITLE='中车在线' -NEW_TITLE='DiStarGPS' -OLD_DIV='数字交通云平台' -NEW_DIV='ดูแลการเดินรถของคุ' - -# 使用sed命令进行文本替换 -sed -i.bak "s|$OLD_TITLE|$NEW_TITLE|g" "$html_file" -sed -i.bak "s|$OLD_DIV|$NEW_DIV|g" "$html_file" -rm "$html_file".bak - -echo "替换完成:$html_file 中的 '工物员' 已被替换为 'DiStarGPS ดูแลการเดินรถของคุณ'" - echo "解压完成,目录 -> " "$target_dir" echo "beta路径,复制到浏览器可预览 -> " https://tripsdd.com/beta/"$target_dir" diff --git a/projects/distar/index-seo.html b/projects/distar/index-seo.html new file mode 100644 index 0000000..2c15f07 --- /dev/null +++ b/projects/distar/index-seo.html @@ -0,0 +1,18 @@ + + + + + + + DiStarGPS + + + + + + +

DiStarGPS

+

ดูแลการเดินรถของคุณ

+ + + \ No newline at end of file From 633ed67396ea2d23cddb0f08de65616d23b46479 Mon Sep 17 00:00:00 2001 From: cli Date: Wed, 22 Oct 2025 02:40:11 -0400 Subject: [PATCH 12/13] =?UTF-8?q?wip:=20=E6=A3=80=E6=B5=8Bindex-seo.html?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- projects/distar-beta-deploy.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/projects/distar-beta-deploy.sh b/projects/distar-beta-deploy.sh index 00b29d8..15c4fbf 100755 --- a/projects/distar-beta-deploy.sh +++ b/projects/distar-beta-deploy.sh @@ -120,5 +120,25 @@ cd .. # 复制配置文件 cp -Rfv "$CONFIG_DIR"/* "$target_dir" +# 指定要处理的HTML文件 +cd "$target_dir" +html_file="index.html" +if [ -f "index-seo.html" ]; then + echo "index-seo.html文件已存在, 爬虫访问网站时, 它的优先级更高, 不需要替换${html_file}里面的标题&描述" +else + # 使用sed命令进行文本替换, 网站微缩图 + OLD_TITLE='中车在线' + NEW_TITLE='DiStarGPS' + OLD_DIV='数字交通云平台' + NEW_DIV='ดูแลการเดินรถของคุ' + + # 使用sed命令进行文本替换 + sed -i.bak "s|$OLD_TITLE|$NEW_TITLE|g" "$html_file" + sed -i.bak "s|$OLD_DIV|$NEW_DIV|g" "$html_file" + rm "$html_file".bak + + echo "替换完成:$html_file 中的 '工物员' 已被替换为 'DiStarGPS ดูแลการเดินรถของคุณ'" +fi + echo "解压完成,目录 -> " "$target_dir" echo "beta路径,复制到浏览器可预览 -> " https://tripsdd.com/beta/"$target_dir" From a45721ae7ee6067d3e14112c0e5b049fbd4b4b79 Mon Sep 17 00:00:00 2001 From: cli Date: Wed, 22 Oct 2025 02:42:37 -0400 Subject: [PATCH 13/13] =?UTF-8?q?wip:=20=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.default b/.env.default index 5599b81..40ac64a 100644 --- a/.env.default +++ b/.env.default @@ -42,7 +42,7 @@ BUS_GATEWAY_CALCULATION_VERSION=1.17.0 TRACK_WEB_VERSION=1.53.0 # track前端文件复写目录, 该目录中的文件会在compose被up时被复制到track前端目录, 通常可以复写如下文件: # - _app.config.js: 前端配置文件 -# - index-seo.html: 交给搜索引擎/爬虫读取的静态页面 +# - index-seo.html: 交给爬虫(搜索引擎/Line网页摘要等)读取的静态页面 # - favicon.ico: ico图标 # - favicon.png: png图标 # - logo.png: 大图标