| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | # Builder stage | 
					
						
							| 
									
										
										
										
											2025-07-15 11:19:44 +01:00
										 |  |  | FROM python:3.11-slim-bookworm AS builder | 
					
						
							| 
									
										
										
										
											2025-05-09 16:40:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | WORKDIR /app | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COPY requirements.txt . | 
					
						
							| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | RUN pip install --no-cache-dir --prefix=/install -r requirements.txt | 
					
						
							| 
									
										
										
										
											2025-05-09 16:40:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | # Final stage | 
					
						
							| 
									
										
										
										
											2025-07-15 11:19:44 +01:00
										 |  |  | FROM python:3.11-slim-bookworm AS final | 
					
						
							| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-14 22:19:11 +01:00
										 |  |  | RUN apt-get update && apt-get install -y --no-install-recommends \ | 
					
						
							|  |  |  |     libgomp1 \ | 
					
						
							|  |  |  |  && apt-get clean \ | 
					
						
							|  |  |  |  && rm -rf /var/lib/apt/lists/* | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | WORKDIR /app | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COPY --from=builder /install /usr/local | 
					
						
							| 
									
										
										
										
											2025-07-15 09:28:15 +01:00
										 |  |  | COPY app.py . | 
					
						
							|  |  |  | COPY gunicorn.conf.py . | 
					
						
							|  |  |  | COPY run.sh . | 
					
						
							|  |  |  | COPY VERSION . | 
					
						
							|  |  |  | COPY backend/ backend/ | 
					
						
							|  |  |  | COPY lib/ lib/ | 
					
						
							|  |  |  | COPY static/ static/ | 
					
						
							|  |  |  | COPY templates/ templates/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-09 16:40:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-13 16:00:52 +01:00
										 |  |  | RUN chmod +x run.sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-09 10:59:28 +01:00
										 |  |  | ARG VERSION | 
					
						
							|  |  |  | RUN echo $VERSION > VERSION | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-14 21:15:34 +01:00
										 |  |  | # Create a non-root user | 
					
						
							|  |  |  | RUN useradd --create-home appuser | 
					
						
							|  |  |  | USER appuser | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-13 16:00:52 +01:00
										 |  |  | EXPOSE 5000 | 
					
						
							| 
									
										
										
										
											2025-05-09 16:40:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-15 11:19:44 +01:00
										 |  |  | ENV FLASK_ENV=production | 
					
						
							| 
									
										
										
										
											2025-07-13 16:00:52 +01:00
										 |  |  | CMD ["./run.sh"] |