Skip to content

15.1 · Deployment inventory

ตารางนี้รวบรวม deploy artifact ของทุก repo ที่มีโค้ดจริง (25 repo, ไม่รวม 8 placeholder repo ที่ว่างเปล่าทุก branch — ดู Canonical Truths)

15.1.1 · Legacy Core

RepoDeploy artifactBase imageหมายเหตุหลักฐาน
vtrc-apiไม่พบ Dockerfile/docker-compose ที่ยืนยันได้ในรอบสำรวจนี้UNVERIFIEDโฟกัสการสำรวจอยู่ที่ application layer (GraphQL pipeline, controllers) ไม่ใช่ infra — deploy artifact ต้องยืนยันเพิ่มกับทีม DevOpsvtrc-api/index
cu-central-apiDockerfile (main-api, FROM node:12.18.3) + Dockerfile-nginx + Dockerfile-redis + docker-compose.yml (3x replica + redis + nginx)node:12.18.3EOL เมษายน 2022มี ecosystem.config.js (PM2 config) ที่ comment ว่า "legacy, ไม่ได้ใช้ prod" — เคย deploy ด้วย PM2 มาก่อนแล้วเปลี่ยนเป็น Dockercu-central-api/01-repository-map-bootstrap
centralize-apiไม่ได้ตรวจสอบละเอียดในรอบนี้ (NestJS มาตรฐาน สันนิษฐานว่ามี Dockerfile ตาม pattern ทั่วไปของ NestJS service อื่น)UNVERIFIEDcentralize-api/index

15.1.2 · Web Frontends — static build committed to git

RepoDeploy artifactหมายเหตุหลักฐาน
vtrc-backofficeDockerfile เป็นแค่ FROM nginx:1.18 + nginx-extrasไม่ build จาก source ใน imagedev รัน npm run build บนเครื่อง (หรือ CI นอก repo) → commit ผลลัพธ์ลง build/ (~47 MB) → docker-compose mount ./build:/usr/share/nginx/html ตรงvtrc-backoffice/index §build tooling
vtrc-backoffice-newรูปแบบเดียวกับ vtrc-backoffice (fork)ไม่ได้ตรวจ Dockerfile ต่างจากต้นฉบับในรอบนี้ (สันนิษฐานว่าเหมือนกัน — UNVERIFIED ระดับไฟล์)vtrc-backoffice-new/index
vtrc-rc-backofficeไม่ได้ตรวจ Dockerfile โดยละเอียดในรอบนี้ตาม workspace rule มี build/ ที่ commit เข้า git (Webpack/CRA output) เช่นเดียวกับกลุ่มนี้ทั้งหมดCanonical Truths
vtrc-webไม่ได้ตรวจ Dockerfile โดยละเอียดในรอบนี้เดียวกับข้างบน (build/ commit เข้า git)Canonical Truths

รูปแบบร่วมของทั้งกลุ่ม — ไม่มี frontend ตัวใดใน Web Frontends group ที่ build image จาก source code จริง ทุกตัว deploy ด้วยการ commit ผลลัพธ์ build (build/ directory) เข้า git แล้วให้ nginx serve เป็น static file ตรง — ไม่มี CI ที่ build ให้อัตโนมัติที่ยืนยันได้ในโค้ดที่ตรวจสอบ

15.1.3 · 2way Platform

RepoDeploy artifactBase imageCIหลักฐาน
2way-api3 Dockerfile แยกตาม environment (Dockerfile, Dockerfile.prod, Dockerfile.uat) multi-stagenode:16-alpine (build) → node:18-alpine (runtime) — build stage EOL เมษายน 2024Bitbucket Pipelines (bitbucket-pipelines.yml)2way-api/index
2way-batchDockerfile เดียว + nginx/conf.d/, nginx/conf/ ในตัว reponode:16-alpine — EOLไม่พบ CI file2way-batch/index
2way-line-serviceDockerfile เดียว + docker-compose.ymlUNVERIFIED (ไม่ได้ยืนยัน base image เจาะจง)ไม่พบ CI file2way-line-service/index
2way-vtrc-apiDockerfile เดียว, ไม่มี multi-stage (รัน ts-node ตรงใน container ไม่ compile ก่อน)node:18-alpine3.15ไม่พบ CI file2way-vtrc-api/index
2way-meeting-backofficeNext.js — build artifact ไม่ได้ตรวจ Dockerfile โดยละเอียดในรอบนี้UNVERIFIEDมี Sentry webpack plugin (next.config.js) — บ่งชี้ CI/build pipeline ที่ upload source map ให้ Sentry2way-meeting-backoffice/index

15.1.4 · Domain Microservices

RepoDeploy artifactBase imageหมายเหตุหลักฐาน
benefit-apiDockerfile (+ docker-compose.yml ที่ root, ไม่ได้อ่านรายละเอียด)node:20-alpine + chromium/font libs (puppeteer)yarn install --frozen-lockfilebenefit-api/index
recruitment-apiDockerfilenode:20-alpine + chromium/nmap/harfbuzz/freetype/nssnmap ที่ติดตั้งไม่ทราบเหตุผล (UNVERIFIED)recruitment-api/index
ai-recruitment-apiDockerfilenode:18-alpine + python3/make/g++/cairo-dev/pango-dev/giflib-dev/jpeg-dev/libpng-dev (native addon canvas)เก่ากว่า benefit-api/recruitment-api 1 major versionai-recruitment-api/index
pms-apiDockerfilenode:20-alpine + chromium/nmap/harfbuzz/freetype/nss (ชุดเดียวกับ benefit-api)yarn install ไม่มี --frozen-lockfile — เสี่ยง version drift ระหว่าง buildpms-api/index
chat-center-apiDockerfile single-stagenode:18-alpineไม่มี EXPOSE, ไม่มี docker-compose.yml ใน repo — วิธี orchestrate จริง UNVERIFIEDchat-center-api/index
job-scheduler-apiDockerfile multi-stage + docker-compose.yml (join network vtrc-api_default)node:16-alpine — EOLEXPOSE 3000 ไม่ตรง PORT=9900 จริงjob-scheduler-api/index
workflow-apiDockerfile multi-stagenode:22-alpine + pnpm (corepack)ใหม่สุดในทั้งแพลตฟอร์ม (Node 22, NestJS 10)workflow-api/index
sso-apiไม่มี Dockerfile/docker-compose.yml/CI file ใดเลยUNVERIFIEDrepo ยังอยู่สถานะพัฒนาตอนต้น — ไม่มี .env/.env.example ด้วยsso-api/index
vtrc-commonDockerfile multi-stage (developproduction)node:18-alpineรันเป็น container process ค้างไว้ฟัง port 9310 ไม่ใช่ npm package artifactvtrc-common/02-core-pipeline

15.1.5 · Meeting Platform

RepoDeploy artifactหมายเหตุหลักฐาน
meeting-vtrc-apiไม่มี Dockerfile ในโฟลเดอร์ root — มี docker-compose.yml ที่สั่ง build: context: . ตรงจาก sourceDockerfile อาจถูก generate จากที่อื่น (CI) — UNVERIFIED; deploy บน on-prem host (hrappladmin user, mount volume /home/hrappladmin/storage/meeting) ไม่ใช่ GCRmeeting-vtrc-api/index
meeting-backofficeNext.js — ไม่ได้ตรวจ Dockerfile โดยละเอียดมี @sentry/nextjs เต็มชุด — บ่งชี้ CI/build pipeline ที่ upload source mapmeeting-backoffice/index
meeting-backoffice-newReact (CRA) — ไม่ได้ตรวจ Dockerfile โดยละเอียดไม่มี Sentry เลย (ต่างจาก meeting-backoffice)meeting-backoffice-new/index

15.1.6 · Mobile

RepoDeploy artifactหมายเหตุ
vtrc-mobileReact Native build (Android APK/AAB + iOS IPA ผ่าน keystore/certificate ที่ commit ใน repo)Android release keystore password หลุดเข้า git — ดู Volume 8 scorecard
new-vtrc-mobileReact Native build เหมือนกัน แต่ยังเป็น early-stage (6 screen)RSA private key เดียวกับ vtrc-mobile หลุดเข้า git
vtrc-application-frontStatic HTML — เก็บไฟล์ .ipa ที่ compile แล้วไว้ในตัว repo เอง (enterprise distribution ผ่าน itms-services)ไม่ใช่ Cordova app ตามที่คาดไว้เดิม

15.1.7 · OCR & Auxiliary

RepoDeploy artifactหมายเหตุหลักฐาน
vtrc-ocr-apiไม่มี Dockerfile/docker-compose.yml/bitbucket-pipelines.yml ใดเลยUNVERIFIED ว่าเคย deploy ขึ้น production จริงหรือไม่ — repo อยู่สถานะ scaffold (3 commit)vtrc-ocr-api/index
report-logไม่มี — เป็น script ที่รันด้วยมือ (node app.js) ไม่ใช่ service ที่ deploy ค้างไว้เป็น offline log consumer ไม่ใช่ servicereport-log/02-core-pipeline
recruitment-webไม่ได้ตรวจ Dockerfile โดยละเอียด — React CRAเชื่อมกับ recruitment-api เป็น backendrecruitment-web/index
interns_playgroundไม่เกี่ยว production — sandbox ฝึกฝนภายในทีมไม่ต้องมี deploy artifact จริงinterns_playground/index

15.1.8 · สรุป pattern deploy ที่พบ

PatternRepo ที่ใช้ความเสี่ยง
Multi-stage Docker build จาก source2way-api, job-scheduler-api, vtrc-common, workflow-apiมาตรฐาน — ความเสี่ยงต่ำสุด
Single-stage Docker build จาก sourcebenefit-api, recruitment-api, ai-recruitment-api, pms-api, chat-center-api, 2way-batch, 2way-line-service, 2way-vtrc-apibuild time ยาวกว่า multi-stage (ไม่ trim dev dependency)
Docker image ที่ไม่ build จาก source (serve static ที่ commit ไว้แล้ว)vtrc-backoffice (ยืนยัน), vtrc-backoffice-new/vtrc-rc-backoffice/vtrc-web (สันนิษฐานจาก pattern เดียวกัน)build reproducibility ต่ำ — ไม่มีใครรู้ว่า build/ ที่ commit ตรงกับ src/ เวอร์ชันไหนจริง 100% ถ้าไม่เช็ค commit timestamp
ไม่มี deploy artifact ใดเลยในโค้ดsso-api, vtrc-ocr-apiไม่สามารถยืนยันว่า service เคย deploy ขึ้น production จริงหรือไม่
Docker Compose ที่ build จาก context ตรง ไม่มี Dockerfile แยกmeeting-vtrc-apiต้องพึ่งพา Docker Compose รู้วิธี build เอง — ไม่มี Dockerfile ให้ review แยกจาก compose

ไม่พบ Kubernetes manifest, Helm chart, หรือ Terraform/infra-as-code ใดในทั้ง 25 repo ที่สำรวจ — ทุก deploy ที่ตรวจสอบได้เป็น Docker Compose หรือ Docker image ตรงบน VM/on-prem host เท่านั้น