chore: 调整正式环境和测试环境发版区别

This commit is contained in:
liulujian 2026-05-27 00:53:39 +08:00
parent a141806d73
commit b1f70c0cac
3 changed files with 153 additions and 19 deletions

View File

@ -97,11 +97,14 @@ FROM --platform=$TARGETARCH eclipse-temurin:8-jre
WORKDIR /app
# 安装字体(用于验证码 Captcha
# 使用中科大镜像加速amd64 用 ubuntu勿用 ubuntu-ports
RUN echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse' > /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
apt-get update && apt-get install -y --no-install-recommends \
# 使用中科大镜像加速
# 彻底删除所有旧源关键包括DEB822格式新源→ 写入中科大arm64专属源 → 安装字体
RUN rm -rf /etc/apt/sources.list /etc/apt/sources.list.d/* && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse' > /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse' >> /etc/apt/sources.list && \
apt-get update -y && apt-get install -y --no-install-recommends \
fontconfig \
fonts-noto-cjk \
&& fc-cache -f -v \
@ -109,7 +112,7 @@ RUN echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe
&& rm -rf /var/lib/apt/lists/*
COPY devops/start.sh /app/start.sh
RUN sed -i 's/\r$//' /app/start.sh && chmod +x /app/start.sh
RUN chmod +x /app/start.sh
# 复制所有构建产物
COPY --from=builder /build/gateway/target/springboot.jar /app/gateway.jar

131
devops/Dockerfile.test Normal file
View File

@ -0,0 +1,131 @@
# ============================================================
# 碳信网 - 统一后端构建镜像
# 支持多平台构建: docker buildx build --platform linux/arm64,linux/amd64
# 使用方式: docker run -e SERVICE_NAME=gateway txw-all:latest
# ============================================================
# Stage 1: Build
# 使用多架构 Maven 镜像,自动选择对应平台版本
FROM --platform=$BUILDPLATFORM maven:3.6.3-openjdk-8 AS builder
# Maven 构建参数
ARG TARGETARCH
ARG BUILDARCH
WORKDIR /build
# -------------------------------------------
# Step 1: 复制所有 pom.xml 和 settings
# -------------------------------------------
# 公共模块
COPY txw-common/pom.xml txw-common/pom.xml
COPY txw-common/src txw-common/src
# Gateway
COPY txw-gateway/pom.xml gateway/pom.xml
COPY txw-gateway/devops/settings-offline.xml gateway/settings.xml
COPY txw-gateway/src gateway/src
# SSO
COPY txw-sso/pom.xml sso/pom.xml
COPY txw-sso/devops/settings-offline.xml sso/settings.xml
COPY txw-sso/txw-sso-service-api/pom.xml sso/txw-sso-service-api/pom.xml
COPY txw-sso/txw-sso-service-api/src sso/txw-sso-service-api/src
COPY txw-sso/txw-sso-service-biz/pom.xml sso/txw-sso-service-biz/pom.xml
COPY txw-sso/txw-sso-service-biz/src sso/txw-sso-service-biz/src
# MHZC
COPY txw-mhzc/pom.xml mhzc/pom.xml
COPY txw-mhzc/devops/settings-offline.xml mhzc/settings.xml
COPY txw-mhzc/txw-mhzc-service-api/pom.xml mhzc/txw-mhzc-service-api/pom.xml
COPY txw-mhzc/txw-mhzc-service-api/src mhzc/txw-mhzc-service-api/src
COPY txw-mhzc/txw-mhzc-service-biz/pom.xml mhzc/txw-mhzc-service-biz/pom.xml
COPY txw-mhzc/txw-mhzc-service-biz/src mhzc/txw-mhzc-service-biz/src
# YYGL
COPY txw-yygl/pom.xml yygl/pom.xml
COPY txw-yygl/settings.xml yygl/settings.xml
COPY txw-yygl/txw-yygl-service-api/pom.xml yygl/txw-yygl-service-api/pom.xml
COPY txw-yygl/txw-yygl-service-api/src yygl/txw-yygl-service-api/src
COPY txw-yygl/txw-yygl-service-biz/pom.xml yygl/txw-yygl-service-biz/pom.xml
COPY txw-yygl/txw-yygl-service-biz/src yygl/txw-yygl-service-biz/src
# -------------------------------------------
# Step 2: 复制 Maven 本地仓库(离线构建)
# 注意:若本地仓库中有编译好的二进制 native 库(非 Java byte code
# 需要确保这些库是跨平台的,或在 ARM64 上重新构建
# -------------------------------------------
COPY script/.m2/repository /root/.m2/repository
# -------------------------------------------
# Step 3: 按依赖顺序构建
# -------------------------------------------
# 3.1 构建公共模块
WORKDIR /build/txw-common
RUN mvn clean install -DskipTests -s ../gateway/settings.xml -o || mvn clean install -DskipTests
# 3.2 构建 API 模块
WORKDIR /build/mhzc/txw-mhzc-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
WORKDIR /build/sso/txw-sso-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
WORKDIR /build/yygl/txw-yygl-service-api
RUN mvn clean install -DskipTests -s ../../gateway/settings.xml -o || mvn clean install -DskipTests
# 3.3 构建 BIZ 模块
WORKDIR /build/mhzc/txw-mhzc-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
WORKDIR /build/sso/txw-sso-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
WORKDIR /build/yygl/txw-yygl-service-biz
RUN mvn clean package -DskipTests -s ../../gateway/settings.xml -o || mvn clean package -DskipTests
# 3.4 构建 Gateway
WORKDIR /build/gateway
RUN mvn clean package -DskipTests -s settings.xml -o || mvn clean package -DskipTests
# Stage 2: Package
# 使用多架构 JRE 镜像,指定目标平台
FROM --platform=$TARGETARCH eclipse-temurin:8-jre
WORKDIR /app
# 安装字体(用于验证码 Captcha
# 使用中科大镜像加速amd64 用 ubuntu勿用 ubuntu-ports
RUN echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble main restricted universe multiverse' > /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.ustc.edu.cn/ubuntu/ noble-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
apt-get update && apt-get install -y --no-install-recommends \
fontconfig \
fonts-noto-cjk \
&& fc-cache -f -v \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
COPY devops/start.sh /app/start.sh
RUN sed -i 's/\r$//' /app/start.sh && chmod +x /app/start.sh
# 复制所有构建产物
COPY --from=builder /build/gateway/target/springboot.jar /app/gateway.jar
COPY --from=builder /build/sso/txw-sso-service-biz/target/txw-sso-service-biz.jar /app/sso.jar
COPY --from=builder /build/mhzc/txw-mhzc-service-biz/target/txw-mhzc-service-biz.jar /app/mhzc.jar
COPY --from=builder /build/yygl/txw-yygl-service-biz/target/txw-yygl-service-biz.jar /app/yygl.jar
# 清理构建缓存
RUN rm -rf /root/.m2 /root/.mvn
# 环境变量:指定启动的服务名
ENV SERVICE_NAME=gateway
# 激活正式环境 profile
ENV SPRING_PROFILES_ACTIVE=prod
EXPOSE 9300 9301 9302 9303 20010
ENTRYPOINT ["/app/start.sh"]

View File

@ -38,10 +38,11 @@ bash build.sh 1.0.0-BETA
4. 构建前端镜像 `txw-web`
#### 构建测试环境
仅构建后端
```
docker build -t txw-all:1.0.0-BETA -t txw-all:latest -f devops/Dockerfile .
docker build -t txw-all:1.0.0-BETA -t txw-all:latest -f devops/Dockerfile.test .
```
仅构建前端
@ -130,16 +131,16 @@ docker-compose -f docker-compose.svc.yml ps
## 服务访问
| 服务 | 地址 | 说明 |
| ------- | --------------------------- | ----------------------------- |
| Nacos 控制台 | http://localhost:8080/index.html | Nacos 3.x Web 控制台 |
| Nacos API | http://localhost:8848/nacos | 默认账号: nacos / nacos |
| Redis | localhost:6379 | 密码: redis_password |
| MinIO | http://localhost:9000 | 控制台: http://localhost:9001 |
| Gateway | http://localhost:9300 | API 网关 |
| SSO | http://localhost:9301 | 单点登录 |
| MHZC | http://localhost:9302 | 碳资产服务 |
| YYGL | http://localhost:20010 | 运营管理服务 |
| 服务 | 地址 | 说明 |
| ------------ | -------------------------------- | ----------------------------- |
| Nacos 控制台 | http://localhost:8080/index.html | Nacos 3.x Web 控制台 |
| Nacos API | http://localhost:8848/nacos | 默认账号: nacos / nacos |
| Redis | localhost:6379 | 密码: redis_password |
| MinIO | http://localhost:9000 | 控制台: http://localhost:9001 |
| Gateway | http://localhost:9300 | API 网关 |
| SSO | http://localhost:9301 | 单点登录 |
| MHZC | http://localhost:9302 | 碳资产服务 |
| YYGL | http://localhost:20010 | 运营管理服务 |
---
@ -233,10 +234,9 @@ curl http://localhost:8848/nacos/v1/ns/operator/metrics
docker exec txw-redis redis-cli -a redis_password ping
```
## 参考指令
```
// 清理缓存
docker buildx prune
```
```