From c172cd7f013d5a7d40d662f18a94dfc112503764 Mon Sep 17 00:00:00 2001 From: Milas Bowman Date: Tue, 12 Jul 2022 05:31:52 -0400 Subject: [PATCH] nginx-flask-mongo: add dev envs support (#268) Signed-off-by: Milas Bowman --- nginx-flask-mongo/.docker/docker-compose.yaml | 27 +++++++++++++++++ nginx-flask-mongo/README.md | 11 +++++++ nginx-flask-mongo/compose.yaml | 11 +++++-- nginx-flask-mongo/flask/Dockerfile | 29 ++++++++++++++++--- 4 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 nginx-flask-mongo/.docker/docker-compose.yaml diff --git a/nginx-flask-mongo/.docker/docker-compose.yaml b/nginx-flask-mongo/.docker/docker-compose.yaml new file mode 100644 index 0000000..63cd95b --- /dev/null +++ b/nginx-flask-mongo/.docker/docker-compose.yaml @@ -0,0 +1,27 @@ +services: + web: + image: nginx + volumes: + - ./nginx/nginx.conf:/tmp/nginx.conf + environment: + - FLASK_SERVER_ADDR=backend:9091 + command: /bin/bash -c "envsubst < /tmp/nginx.conf > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" + ports: + - 80:80 + depends_on: + - backend + + backend: + build: + context: flask + target: dev-envs + stop_signal: SIGINT + environment: + - FLASK_SERVER_PORT=9091 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - mongo + + mongo: + image: mongo diff --git a/nginx-flask-mongo/README.md b/nginx-flask-mongo/README.md index 17e925f..5838d80 100644 --- a/nginx-flask-mongo/README.md +++ b/nginx-flask-mongo/README.md @@ -69,3 +69,14 @@ Stop and remove the containers ``` $ 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/nginx-flask-mongo +``` diff --git a/nginx-flask-mongo/compose.yaml b/nginx-flask-mongo/compose.yaml index 7ac81f0..f7cb9a9 100644 --- a/nginx-flask-mongo/compose.yaml +++ b/nginx-flask-mongo/compose.yaml @@ -10,13 +10,20 @@ services: - 80:80 depends_on: - backend + backend: - build: flask - environment: + build: + context: flask + target: builder + # flask requires SIGINT to stop gracefully + # (default stop signal from Compose is SIGTERM) + stop_signal: SIGINT + environment: - FLASK_SERVER_PORT=9091 volumes: - ./flask:/src depends_on: - mongo + mongo: image: mongo diff --git a/nginx-flask-mongo/flask/Dockerfile b/nginx-flask-mongo/flask/Dockerfile index 2f4e2ef..1a99ea2 100755 --- a/nginx-flask-mongo/flask/Dockerfile +++ b/nginx-flask-mongo/flask/Dockerfile @@ -1,7 +1,28 @@ -FROM python:3.7 +# syntax=docker/dockerfile:1.4 +FROM --platform=$BUILDPLATFORM python:3.10-alpine AS builder WORKDIR /src -COPY . . -RUN pip install -r requirements.txt --no-cache-dir +COPY requirements.txt /src +RUN --mount=type=cache,target=/root/.cache/pip \ + pip3 install -r requirements.txt -CMD ["./server.py"] +COPY . . + +CMD ["python3", "server.py"] + +FROM builder as dev-envs + +RUN <