fastapi: add dev envs support
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
This commit is contained in:
parent
8784f95a69
commit
035e3c5b43
13
fastapi/.docker/docker-compose.yaml
Normal file
13
fastapi/.docker/docker-compose.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
services:
|
||||||
|
api:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
target: dev-envs
|
||||||
|
container_name: fastapi-application
|
||||||
|
environment:
|
||||||
|
PORT: 8000
|
||||||
|
ports:
|
||||||
|
- '8000:8000'
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
restart: "no"
|
@ -1,11 +1,26 @@
|
|||||||
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9-slim
|
# syntax = docker/dockerfile:1.4
|
||||||
|
|
||||||
|
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9-slim AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apt update
|
|
||||||
|
|
||||||
COPY requirements.txt ./
|
COPY requirements.txt ./
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
COPY ./app ./app
|
COPY ./app ./app
|
||||||
|
|
||||||
|
FROM builder as dev-envs
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends git
|
||||||
|
EOF
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
useradd -s /bin/bash -m vscode
|
||||||
|
groupadd docker
|
||||||
|
usermod -aG docker vscode
|
||||||
|
EOF
|
||||||
|
# install Docker tools (cli, buildx, compose)
|
||||||
|
COPY --from=gloursdocker/docker / /
|
||||||
|
@ -52,4 +52,13 @@ Stop and remove the containers
|
|||||||
$ docker compose down
|
$ docker compose down
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Use with Docker Development Environments
|
||||||
|
|
||||||
|
You can use this sample with the Dev Environments feature of Docker Desktop.
|
||||||
|
|
||||||
|
![Screenshot of creating a Dev Environment in Docker Desktop](../dev-envs.png)
|
||||||
|
|
||||||
|
To develop directly on the services inside containers, use the HTTPS Git url of the sample:
|
||||||
|
```
|
||||||
|
https://github.com/docker/awesome-compose/tree/master/fastapi
|
||||||
|
```
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
services:
|
services:
|
||||||
api:
|
api:
|
||||||
build: .
|
build:
|
||||||
|
context: .
|
||||||
|
target: builder
|
||||||
container_name: fastapi-application
|
container_name: fastapi-application
|
||||||
environment:
|
environment:
|
||||||
PORT: 8000
|
PORT: 8000
|
||||||
ports:
|
ports:
|
||||||
- '8000:8000'
|
- '8000:8000'
|
||||||
restart: "no"
|
restart: "no"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user