30 lines
		
	
	
		
			995 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			995 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Backend build
 | |
| 
 | |
| ## วิธีสร้าง package-lock.json ด้วย Docker
 | |
| 
 | |
| ### 1. เช็ค uid:gid ของโฟลเดอร์โปรเจกต์บน QNAP
 | |
| 
 | |
| stat -c "%u:%g" .
 | |
| 
 | |
| ### 2. ใช้ค่าที่ได้มาแทน UID:GID
 | |
| 
 | |
| ```bash
 | |
| docker run --rm \
 | |
|   -v "/share/Container/dms/frontend:/app" -w /app \
 | |
|   --user UID:GID -e HOME=/tmp \
 | |
|   node:20-alpine sh -lc 'mkdir -p /tmp && npm install --package-lock-only --ignore-scripts'
 | |
| ```
 | |
| 
 | |
| สร้าง package-lock.json โดย ไม่ติดตั้ง node_modules
 | |
| 
 | |
| --user $(id -u):$(id -g) ทำให้ไฟล์ที่ได้เป็นเจ้าของโดยยูสเซอร์ปัจจุบัน (กันปัญหา root-owned)
 | |
| 
 | |
| ## ขั้นตอน Build บน QNAP
 | |
| 
 | |
| docker compose -f docker-backend-build.yml build --no-cache 2>&1 | tee backend_build.log
 | |
| 
 | |
| ## สำหรับ build local
 | |
| 
 | |
| cd backend
 | |
| docker build -t dms-backend:dev --target dev .
 | 
