Merge pull request #262 from milas/dev-envs-fastapi

fastapi: add dev envs support
This commit is contained in:
Guillaume Lours 2022-07-05 19:17:22 +02:00 committed by GitHub
commit 457fe0e668
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 6 deletions

View 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"

View File

@ -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 / /

View File

@ -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
```

View File

@ -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"