Commit 63a3c66e authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

docs: 添加 TeamCity CI 使用说明和构建前外部依赖检查

parent 06c9e940
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -132,6 +132,27 @@ Worker 节点通常不暴露核心业务端口,仅暴露监控相关端口供
- API Gateway:`docker-celery-3.0.5/api_gateway/README.md`
- Portal 前端:`docker-celery-3.0.5/frontend_vue/README.md`

## CI (TeamCity)

TeamCity 中推荐直接调用 `make`(仓库根目录的 `Makefile` 会转发到 `docker-celery-3.0.5/`)。

示例(Command Line / Shell step):

```bash
set -e

export IMAGE_TAG=test
export BUILD_NUMBER=100000
export HARBOR_PROJECT=harbor.csst.nao:10443/csst/

make build
make push
```

说明:
- `make build` 会构建全部镜像,并将 Portal 的 build number 设置为 `BUILD_NUMBER`
- `make push` 会将镜像推送到 `HARBOR_PROJECT` 指定的仓库。

## 故障排除

- Docker 权限:确保执行用户已加入 `docker` 组或具备 sudo/root。
+6 −0
Original line number Diff line number Diff line
@@ -41,6 +41,12 @@ list-envs:
	@ls -d deploy_configs/*/ 2>/dev/null | sed 's|deploy_configs/||' | sed 's|/||' | sed 's/^/  - /' || echo "  No environments found."

build:
	@echo "Checking external sources (../external):";
	if [ -d "../external/csst-dfs-client" ]; then echo "  [OK]   csst-dfs-client (api-gateway)"; else echo "  [MISS] csst-dfs-client (api-gateway)"; fi;
	if [ -d "../external/ccds" ]; then echo "  [OK]   ccds (api-gateway)"; else echo "  [MISS] ccds (api-gateway)"; fi;
	if [ -d "../external/js9" ]; then echo "  [OK]   js9 (js9 image)"; else echo "  [MISS] js9 (js9 image)"; fi;
	if [ -d "../external/csst-dag" ]; then echo "  [OK]   csst-dag"; else echo "  [MISS] csst-dag"; fi;
	if [ -d "../external/csst-dags" ]; then echo "  [OK]   csst-dags"; else echo "  [MISS] csst-dags"; fi;
	@if [ ! -f $(REQ_FILE) ]; then echo "Error: $(REQ_FILE) not found"; exit 1; fi
	@total=$$(grep -v '^#' $(REQ_FILE) | grep -v '^$$' | wc -l); \
	echo "Pulling, retagging and building all $$(($$total+4)) images..."; \