55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
| # Build stage
 | |
| FROM node:22-alpine AS builder
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| # if you located in China, you can use aliyun mirror to speed up
 | |
| RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
 | |
| 
 | |
| # Install bash git dos2unix for TypeScript compiler
 | |
| RUN apk add --no-cache bash git dos2unix
 | |
| 
 | |
| # if you located in China, you can use aliyun mirror to speed up
 | |
| RUN npm config set registry https://registry.npmmirror.com
 | |
| 
 | |
| # Copy rush.json from root directory first
 | |
| COPY rush.json ./
 | |
| 
 | |
| # Install rush with retry logic
 | |
| RUN npm install -g @microsoft/rush
 | |
| 
 | |
| # Copy the frontend source code (excluding node_modules and build artifacts)
 | |
| COPY frontend/ ./frontend/
 | |
| 
 | |
| # Copy common directory for Rush
 | |
| COPY common/ ./common/
 | |
| 
 | |
| # Copy scripts directory for Rush hooks
 | |
| COPY scripts/ ./scripts/
 | |
| 
 | |
| # Convert line endings for shell scripts in scripts directory to Unix format
 | |
| RUN find . -name "*.sh" -type f -exec dos2unix {} \;
 | |
| 
 | |
| # Install all dependencies
 | |
| RUN chmod +x scripts/hooks/post-rush-install.sh && rm -rf /app/common/temp && rush install
 | |
| 
 | |
| # Use rush build to build the specific project
 | |
| RUN rush build --to @coze-studio/app
 | |
| 
 | |
| # Production image stage
 | |
| FROM nginx:1.25-alpine
 | |
| 
 | |
| 
 | |
| # if you located in China, you can use aliyun mirror to speed up
 | |
| RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
 | |
| # Install necessary tools for SSL configuration
 | |
| RUN apk add --no-cache bash
 | |
| 
 | |
| # Copy build artifacts to nginx static directory
 | |
| COPY --from=builder /app/frontend/apps/coze-studio/dist /usr/share/nginx/html
 | |
| 
 | |
| EXPOSE 8888
 | |
| 
 | |
| # Start nginx
 | |
| CMD ["nginx", "-g", "daemon off;"]
 |