* Docker Desktop Development Environments config * Use cache volumes for pip * Upgrade from Python 3.7 -> Python 3.10 * Use port `8000` to avoid conflicts with Airplay on macOS for default Flask port `5000` * Use `SIGINT` to gracefully stop Flask Signed-off-by: Milas Bowman <milas.bowman@docker.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			505 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			505 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # syntax=docker/dockerfile:1.4
 | |
| FROM --platform=$BUILDPLATFORM python:3.10-alpine AS builder
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| COPY requirements.txt /app
 | |
| RUN --mount=type=cache,target=/root/.cache/pip \
 | |
|     pip3 install -r requirements.txt
 | |
| 
 | |
| COPY . /app
 | |
| 
 | |
| ENTRYPOINT ["python3"]
 | |
| CMD ["app.py"]
 | |
| 
 | |
| FROM builder as dev-envs
 | |
| 
 | |
| RUN <<EOF
 | |
| apk update
 | |
| apk add git
 | |
| EOF
 | |
| 
 | |
| RUN <<EOF
 | |
| addgroup -S docker
 | |
| adduser -S --shell /bin/bash --ingroup docker vscode
 | |
| EOF
 | |
| # install Docker tools (cli, buildx, compose)
 | |
| COPY --from=gloursdocker/docker / /
 |