[#29] 整合metric模块端到端测试跑通;整合web/alert模块镜像构建

This commit is contained in:
2025-10-22 12:08:34 +08:00
parent 0b1ccbd87f
commit a1cdd05950
39 changed files with 1167 additions and 158 deletions

View File

@@ -24,24 +24,37 @@ RUN apt-get update && \
apt-get clean && rm -rf /var/lib/apt/lists/*
ENV FRONTEND_BASE_PATH=/private/argus/web/frontend
ARG ARGUS_UID=2133
ARG ARGUS_GID=2015
ENV ARGUS_UID=${ARGUS_UID}
ENV ARGUS_GID=${ARGUS_GID}
ARG ARGUS_BUILD_UID=2133
ARG ARGUS_BUILD_GID=2015
ENV ARGUS_BUILD_UID=${ARGUS_BUILD_UID}
ENV ARGUS_BUILD_GID=${ARGUS_BUILD_GID}
RUN mkdir -p ${FRONTEND_BASE_PATH} && \
mkdir -p /private/argus/etc
# 创建 web 用户(可自定义 UID/GID)
# 创建 web 用户组
RUN groupadd -g ${ARGUS_GID} web
# 创建 web 用户并指定组
RUN useradd -M -s /usr/sbin/nologin -u ${ARGUS_UID} -g ${ARGUS_GID} web
RUN chown -R web:web ${FRONTEND_BASE_PATH} && \
chown -R web:web /private/argus/etc && \
chown -R web:web /usr/local/bin
RUN set -eux; \
# 确保目标 GID 存在(组名可不固定)\
if ! getent group "${ARGUS_BUILD_GID}" >/dev/null; then \
groupadd -g "${ARGUS_BUILD_GID}" web || true; \
fi; \
# 若存在 web 用户则尽量对齐 UID/GID;否则仅在 UID 未被占用时创建
if id web >/dev/null 2>&1; then \
current_uid="$(id -u web)"; \
if [ "$current_uid" != "${ARGUS_BUILD_UID}" ] && ! getent passwd "${ARGUS_BUILD_UID}" >/dev/null; then \
usermod -u "${ARGUS_BUILD_UID}" web; \
fi; \
usermod -g "${ARGUS_BUILD_GID}" web || true; \
else \
if ! getent passwd "${ARGUS_BUILD_UID}" >/dev/null; then \
useradd -M -s /usr/sbin/nologin -u "${ARGUS_BUILD_UID}" -g "${ARGUS_BUILD_GID}" web; \
else \
echo "UID ${ARGUS_BUILD_UID} already exists; skip creating user 'web'"; \
fi; \
fi; \
# 用数值 UID:GID 赋权,避免依赖用户名/组名
chown -R "${ARGUS_BUILD_UID}:${ARGUS_BUILD_GID}" ${FRONTEND_BASE_PATH} /private/argus/etc /usr/local/bin || true
# 配置内网 apt 源 (如果指定了内网选项)
RUN if [ "$USE_INTRANET" = "true" ]; then \

View File

@@ -4,7 +4,7 @@ docker pull ubuntu:24.04
source src/web/tests/.env
docker build \
--build-arg ARGUS_UID=${ARGUS_UID} \
--build-arg ARGUS_GID=${ARGUS_GID} \
--build-arg ARGUS_BUILD_UID=${ARGUS_BUILD_UID} \
--build-arg ARGUS_BUILD_GID=${ARGUS_BUILD_GID} \
-f src/web/build_tools/frontend/Dockerfile -t argus-web-frontend:latest .
docker save -o argus-web-frontend-latest.tar argus-web-frontend:latest

View File

@@ -8,8 +8,8 @@ DNS_SCRIPT="${DNS_DIR}/update-dns.sh"
DOMAIN=web.argus.com
WEB_DOMAIN_FILE="${DNS_DIR}/${DOMAIN}"
RUNTIME_USER="${ARGUS_RUNTIME_USER:-argus}"
RUNTIME_UID="${ARGUS_UID:-2133}"
RUNTIME_GID="${ARGUS_GID:-2015}"
RUNTIME_UID="${ARGUS_BUILD_UID:-2133}"
RUNTIME_GID="${ARGUS_BUILD_GID:-2015}"
mkdir -p "$DNS_DIR"
chown -R "$RUNTIME_UID:$RUNTIME_GID" "$DNS_DIR" 2>/dev/null || true

View File

@@ -8,24 +8,34 @@ RUN apt-get update && \
apt-get clean && rm -rf /var/lib/apt/lists/*
ENV FRONTEND_BASE_PATH=/private/argus/web/proxy
ARG ARGUS_UID=2133
ARG ARGUS_GID=2015
ENV ARGUS_UID=${ARGUS_UID}
ENV ARGUS_GID=${ARGUS_GID}
ARG ARGUS_BUILD_UID=2133
ARG ARGUS_BUILD_GID=2015
ENV ARGUS_BUILD_UID=${ARGUS_BUILD_UID}
ENV ARGUS_BUILD_GID=${ARGUS_BUILD_GID}
RUN mkdir -p ${FRONTEND_BASE_PATH} && \
mkdir -p /private/argus/etc
# 创建 proxy 用户(可自定义 UID/GID)
# 创建 proxy 用户组
RUN groupadd -g ${ARGUS_GID} web_proxy
# 创建 proxy 用户并指定组
RUN useradd -M -s /usr/sbin/nologin -u ${ARGUS_UID} -g ${ARGUS_GID} web_proxy
RUN chown -R web_proxy:web_proxy ${FRONTEND_BASE_PATH} && \
chown -R web_proxy:web_proxy /private/argus/etc && \
chown -R web_proxy:web_proxy /usr/local/bin
RUN set -eux; \
if ! getent group "${ARGUS_BUILD_GID}" >/dev/null; then \
groupadd -g "${ARGUS_BUILD_GID}" web_proxy || true; \
fi; \
if id web_proxy >/dev/null 2>&1; then \
current_uid="$(id -u web_proxy)"; \
if [ "$current_uid" != "${ARGUS_BUILD_UID}" ] && ! getent passwd "${ARGUS_BUILD_UID}" >/dev/null; then \
usermod -u "${ARGUS_BUILD_UID}" web_proxy; \
fi; \
usermod -g "${ARGUS_BUILD_GID}" web_proxy || true; \
else \
if ! getent passwd "${ARGUS_BUILD_UID}" >/dev/null; then \
useradd -M -s /usr/sbin/nologin -u "${ARGUS_BUILD_UID}" -g "${ARGUS_BUILD_GID}" web_proxy; \
else \
echo "UID ${ARGUS_BUILD_UID} already exists; skip creating user 'web_proxy'"; \
fi; \
fi; \
chown -R "${ARGUS_BUILD_UID}:${ARGUS_BUILD_GID}" ${FRONTEND_BASE_PATH} /private/argus/etc /usr/local/bin || true
# 配置内网 apt 源 (如果指定了内网选项)
RUN if [ "$USE_INTRANET" = "true" ]; then \

View File

@@ -3,7 +3,7 @@ docker pull ubuntu:24.04
source src/web/tests/.env
docker build \
--build-arg ARGUS_UID=${ARGUS_UID} \
--build-arg ARGUS_GID=${ARGUS_GID} \
--build-arg ARGUS_BUILD_UID=${ARGUS_BUILD_UID} \
--build-arg ARGUS_BUILD_GID=${ARGUS_BUILD_GID} \
-f src/web/build_tools/proxy/Dockerfile -t argus-web-proxy:latest .
docker save -o argus-web-proxy-latest.tar argus-web-proxy:latest

View File

@@ -9,8 +9,8 @@ DNS_CONF_PRIVATE="/private/argus/etc/dns.conf"
DNS_CONF_SYSTEM="/etc/resolv.conf"
DNS_DIR="/private/argus/etc"
DNS_SCRIPT="${DNS_DIR}/update-dns.sh"
RUNTIME_UID="${ARGUS_UID:-2133}"
RUNTIME_GID="${ARGUS_GID:-2015}"
RUNTIME_UID="${ARGUS_BUILD_UID:-2133}"
RUNTIME_GID="${ARGUS_BUILD_GID:-2015}"
mkdir -p "$DNS_DIR"
chown -R "$RUNTIME_UID:$RUNTIME_GID" "$DNS_DIR" 2>/dev/null || true

View File

@@ -4,15 +4,15 @@ services:
context: ../../../
dockerfile: src/web/build_tools/frontend/Dockerfile
args:
ARGUS_UID: ${ARGUS_UID:-2133}
ARGUS_GID: ${ARGUS_GID:-2015}
ARGUS_BUILD_UID: ${ARGUS_BUILD_UID:-2133}
ARGUS_BUILD_GID: ${ARGUS_BUILD_GID:-2015}
USE_INTRANET: ${USE_INTRANET:-false}
image: argus-web-frontend:latest
container_name: argus-web-frontend
environment:
- ALERTMANAGER_BASE_PATH=/private/argus/web/frontend
- ARGUS_UID=${ARGUS_UID:-2133}
- ARGUS_GID=${ARGUS_GID:-2015}
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
ports:
- "${ARGUS_WEB_PORT:-8080}:80"
volumes:
@@ -31,14 +31,14 @@ services:
context: ../../../
dockerfile: src/web/build_tools/proxy/Dockerfile
args:
ARGUS_UID: ${ARGUS_UID:-2133}
ARGUS_GID: ${ARGUS_GID:-2015}
ARGUS_BUILD_UID: ${ARGUS_BUILD_UID:-2133}
ARGUS_BUILD_GID: ${ARGUS_BUILD_GID:-2015}
USE_INTRANET: ${USE_INTRANET:-false}
image: argus-web-proxy:latest
container_name: argus-web-proxy
environment:
- ARGUS_UID=${ARGUS_UID:-2133}
- ARGUS_GID=${ARGUS_GID:-2015}
- ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
- ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
ports:
- "8088:80"
volumes: