Explorar el Código

add configuration to use django sample with Docker Dev Environments feature (#252)

Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Guillaume Lours hace 3 años
padre
commit
f716bfb382
Se han modificado 4 ficheros con 36 adiciones y 2 borrados
  1. 9 0
      django/.docker/docker-compose.yaml
  2. 7 0
      django/README.md
  3. 17 1
      django/app/Dockerfile
  4. 3 1
      django/compose.yaml

+ 9 - 0
django/.docker/docker-compose.yaml

@@ -0,0 +1,9 @@
+services:
+  web: 
+    build:
+      context: app
+      target: dev-envs
+    ports: 
+      - '8000:8000'
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock

+ 7 - 0
django/README.md

@@ -50,3 +50,10 @@ 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.  
+To develop directly the web service inside a container, you just need to use the https git url of the sample:  
+`https://github.com/docker/awesome-compose/tree/master/django`
+
+![page](../dev-envs.png)

+ 17 - 1
django/app/Dockerfile

@@ -1,4 +1,6 @@
-FROM python:3.7-alpine 
+# syntax=docker/dockerfile:1.4
+
+FROM --platform=$BUILDPLATFORM python:3.7-alpine AS builder
 EXPOSE 8000
 WORKDIR /app 
 COPY requirements.txt /app
@@ -6,3 +8,17 @@ RUN pip3 install -r requirements.txt --no-cache-dir
 COPY . /app 
 ENTRYPOINT ["python3"] 
 CMD ["manage.py", "runserver", "0.0.0.0:8000"]
+
+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 / /
+CMD ["manage.py", "runserver", "0.0.0.0:8000"]

+ 3 - 1
django/compose.yaml

@@ -1,5 +1,7 @@
 services:
   web: 
-    build: app 
+    build:
+      context: app
+      target: builder
     ports: 
       - '8000:8000'