KB-2604

S174-FIX-02: Nuxt Local Build + Go pkg.dev

4 min read Revision 1
s174nuxtar-01report

S174-FIX-02: Nuxt Local Build + Gỡ pkg.dev

Date: 2026-04-08 Mission: S174-FIX-02 Status: COMPLETE — 5/5 verify GREEN


VIỆC 1 — Dọn Dead Code + .dockerignore

Action File Detail
Xóa dep web/package.json Removed "google-auth-library": "^10.5.0"
Xóa file web/server/utils/googleAuth.ts 152 lines deleted (all commented-out code + stubs)
Tạo mới web/.dockerignore .git, node_modules, .nuxt, .output, *.log, .env*, dist
Regen lockfile web/pnpm-lock.yaml 162 deletions, 7 additions — google-auth-library removed

Grep imports: agentDataAuth.ts had commented-out imports from googleAuth — no live references. Safe delete.

Commits:

  • 2991134 S174-FIX-02: dead code + dockerignore
  • 89459f1 S174-FIX-02: regenerate lockfile without google-auth-library

Pushed to GitHub branch: s174-fix-02-nuxt-local


VIỆC 2 — Build Local

docker build -t nuxt-ssr-local:s174 -f web/Dockerfile web/
Metric Value
Build time ~284s
Image ID sha256:072ccd861f30...
Image size 60.5MB
Entrypoint docker-entrypoint.sh
Cmd node .output/server/index.mjs
Base image node:20-alpine (Docker Hub)
Nitro output 35.9 MB (10.1 MB gzip)

So sánh với image cũ nuxt-ssr-local:latest:

  • Size: 60.5MB vs 60.4MB (gần như bằng)
  • Entrypoint/Cmd: identical

VIỆC 3 — Test Song Song

Container test: incomex-nuxt-test trên port 3099 (3001 bị chiếm), network docker_incomex, volume :ro

Check Result
docker ps UP, image nuxt-ssr-local:s174
docker logs Listening on http://0.0.0.0:3000 — no fatal
curl -sI localhost:3099 HTTP/1.1 200 OK, x-powered-by: Nuxt
curl body HTML rendered, Nuxt UI CSS present

Container test removed after checkpoint approval.


VIỆC 4 — Swap Production + Verify

Thay đổi

  • Backup: docker-compose.yml.bak.s174 (4961 bytes)
  • docker-compose.yml dòng 125: asia-southeast1-docker.pkg.dev/github-chatgpt-ggcloud/web-test/nuxt-ssr:latestnuxt-ssr-local:s174
  • Swap: docker compose up -d nuxt → Container recreated, started

Verify 5/5

# Check Value
1 docker ps | grep incomex-nuxt Up (healthy), image nuxt-ssr-local:s174
2 curl -sI https://vps.incomexsaigoncorp.vn/ HTTP/1.1 200 OK, x-powered-by: Nuxt, via nginx/1.29.5
3 curl https://vps.incomexsaigoncorp.vn/api/health {"status":"healthy"}, 3 services ok (qdrant 16.6ms, pg 1.6ms, openai ok), 916 docs, ratio 1.65
4 docker logs incomex-nuxt --tail 50 Listening on http://0.0.0.0:3000 — Directus 403 + mdi:undefined are pre-existing, no new errors
5 docker inspect --format '{{.Config.Image}}' nuxt-ssr-local:s174

Gỡ pkg.dev

  • /root/.docker/config.json: removed asia-southeast1-docker.pkg.dev auth entry (contained GCP service account key)
  • Backup: /root/.docker/config.json.bak.s174
  • Current config: {"auths":{}}

Rollback Artifacts

File Purpose
/opt/incomex/docker/docker-compose.yml.bak.s174 Compose rollback (contains original pkg.dev image ref)
/root/.docker/config.json.bak.s174 Docker auth rollback (contains GCP credentials)
Image asia-southeast1-docker.pkg.dev/.../nuxt-ssr:latest Still cached locally (72715a92885c, 246MB)

Rollback command: cp docker-compose.yml.bak.s174 docker-compose.yml && docker compose up -d nuxt


AR-01 Status: CLOSED

Before: docker-compose.yml dòng 125 trỏ asia-southeast1-docker.pkg.dev (retired Artifact Registry). Mỗi lần recreate/cold-start phụ thuộc registry hết hạn.

After: Image nuxt-ssr-local:s174 built from source trên VPS. Zero GCP dependency cho Nuxt runtime. Docker config cleaned.