diff --git a/spring-postgres/.docker/docker-compose.yaml b/spring-postgres/.docker/docker-compose.yaml new file mode 100644 index 0000000..2237cde --- /dev/null +++ b/spring-postgres/.docker/docker-compose.yaml @@ -0,0 +1,34 @@ +services: + backend: + build: + context: backend + target: dev-envs + ports: + - 8080:8080 + environment: + - POSTGRES_DB=example + networks: + - spring-postgres + volumes: + - /var/run/docker.sock:/var/run/docker.sock + db: + image: postgres + restart: always + secrets: + - db-password + volumes: + - db-data:/var/lib/postgresql/data + networks: + - spring-postgres + environment: + - POSTGRES_DB=example + - POSTGRES_PASSWORD_FILE=/run/secrets/db-password + expose: + - 5432 +volumes: + db-data: +secrets: + db-password: + file: db/password.txt +networks: + spring-postgres: diff --git a/spring-postgres/README.md b/spring-postgres/README.md index da63582..e5b47d1 100644 --- a/spring-postgres/README.md +++ b/spring-postgres/README.md @@ -77,3 +77,11 @@ Removing spring-postgres_db_1 ... done Removing spring-postgres_backend_1 ... done Removing network spring-postgres_default ``` + +## Use with Docker Development Environments + +You can use this sample with the Dev Environments feature of Docker Desktop. +To develop directly frontend or the backend services inside containers, you just need to use the https git url of the sample: +`https://github.com/docker/awesome-compose/tree/master/spring-postgres` + +![page](../dev-envs.png) diff --git a/spring-postgres/backend/Dockerfile b/spring-postgres/backend/Dockerfile index bdf8105..99b5bab 100755 --- a/spring-postgres/backend/Dockerfile +++ b/spring-postgres/backend/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1.4 + FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17 AS builder WORKDIR /workdir/server COPY pom.xml /workdir/server/pom.xml @@ -5,7 +7,24 @@ RUN mvn dependency:go-offline COPY src /workdir/server/src RUN mvn install -RUN mkdir -p target/depency + +FROM builder AS dev-envs +RUN <