docs: 定稿 Q4 Docker 与 Q5 运维文档

This commit is contained in:
Nixevol
2026-09-30 09:24:32 +08:00
parent b75b67928b
commit 2ebcb6e1b8
6 changed files with 333 additions and 18 deletions
+6 -2
View File
@@ -1,5 +1,7 @@
# 多阶段构建:Node 构建前端 → Go 编译(嵌入前端)→ distroless static nonroot。
# 镜像名 git.asio.asia/nixevol/nixmsg;多架构 buildx 推送留给 Q4 定稿,本骨架先单架构可构建。
# 镜像名 git.asio.asia/nixevol/nixmsg;入口 /nixmsg。
# 单架构:task q:docker-build 或 q:docker-push(含推送)。
# 多架构:task q:docker-buildx(linux/amd64 + linux/arm64,需 buildx;正式推送在 Z3)。
FROM node:24-bookworm AS web
WORKDIR /src/web
@@ -9,13 +11,15 @@ COPY web/ ./
RUN pnpm build
FROM golang:1.27-bookworm AS build
ARG TARGETOS=linux
ARG TARGETARCH=amd64
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
COPY --from=web /src/web/dist ./web/dist
ENV CGO_ENABLED=0
RUN go build -tags embeddist -o /out/nixmsg ./cmd/nixmsg
RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -tags embeddist -o /out/nixmsg ./cmd/nixmsg
FROM gcr.io/distroless/static:nonroot
COPY --from=build /out/nixmsg /nixmsg
+12 -10
View File
@@ -1,11 +1,16 @@
# Docker Compose 示例(DEVELOPMENT 第 11.4 节骨架)
# 本地冒烟:先 docker build -t git.asio.asia/nixevol/nixmsg:0.1.0 -f deploy/Dockerfile .
# 容器名带 q 前缀便于多 Agent 隔离;正式部署可去掉 container_name。
# Docker Compose 示例(对齐 DEVELOPMENT 第 11.4 节)
# 构建:task q:docker-build(当前架构)或 task q:docker-buildx(多架构,正式推送在 Z3)
# 首次:保证数据目录对 uid 65532 可写,再 admin init,然后 up。
#
# 命名卷首次授权示例:
# docker run --rm -v q4-nixmsg-data:/data busybox chown -R 65532:65532 /data
# 宿主机目录挂载时:在宿主机 chown 65532:65532 ./data
services:
nixmsg:
image: git.asio.asia/nixevol/nixmsg:0.1.0
container_name: q-nixmsg
# 本地/并行测试可加 container_name;正式部署可去掉
container_name: q4-nixmsg
restart: unless-stopped
command: ["serve"]
environment:
@@ -14,7 +19,7 @@ services:
- "7443:7443"
volumes:
- ./config.docker.yaml:/etc/nixmsg/config.yaml:ro
- q-nixmsg-data:/data
- q4-nixmsg-data:/data
# 生产环境挂载证书目录,例如:
# - /opt/nixmsg/certs:/certs:ro
healthcheck:
@@ -24,8 +29,5 @@ services:
retries: 3
volumes:
q-nixmsg-data:
name: q-nixmsg-data
# 首次使用命名卷时,需保证 /data 对 uid 65532 可写,例如:
# docker run --rm -v q-nixmsg-data:/data busybox chown -R 65532:65532 /data
q4-nixmsg-data:
name: q4-nixmsg-data