35 lines
		
	
	
		
			640 B
		
	
	
	
		
			Docker
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			640 B
		
	
	
	
		
			Docker
		
	
	
FROM python:3.9 AS builder
 | 
						|
 | 
						|
WORKDIR /wheels
 | 
						|
 | 
						|
# Update pip & build the wheels
 | 
						|
COPY ./setup.cfg ./
 | 
						|
RUN pip wheel -e .
 | 
						|
 | 
						|
 | 
						|
FROM python:3.9-slim
 | 
						|
 | 
						|
# Switch to non-root user
 | 
						|
RUN groupadd -r runner && \
 | 
						|
    useradd -mrg runner runner
 | 
						|
 | 
						|
# Install the generated wheels
 | 
						|
COPY --from=builder /wheels /wheels
 | 
						|
RUN pip install \
 | 
						|
        --no-cache-dir \
 | 
						|
        --no-warn-script-location \
 | 
						|
        -f /wheels \
 | 
						|
        -e /wheels && \
 | 
						|
    rm -rf /wheels
 | 
						|
 | 
						|
# Switch to non-root user
 | 
						|
USER runner
 | 
						|
 | 
						|
# Copy source files
 | 
						|
WORKDIR /usr/src/app
 | 
						|
COPY --chown=runner:runner ./app ./app
 | 
						|
COPY --chown=runner:runner setup.cfg setup.py ./
 | 
						|
 | 
						|
ENTRYPOINT ["python"]
 | 
						|
CMD ["app"]
 |