Skip to content

Commit

Permalink
add configuration to use spring-postgres sample with Docker Dev Envir…
Browse files Browse the repository at this point in the history
…onments feature (docker#258)

* add configuration to use spring-postgres sample with Docker Dev Environments feature

Co-authored-by: Milas Bowman <[email protected]>
Signed-off-by: Guillaume Lours <[email protected]>
  • Loading branch information
glours and milas authored Jul 8, 2022
1 parent eb837eb commit 9d547d2
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 1 deletion.
34 changes: 34 additions & 0 deletions spring-postgres/.docker/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -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:
8 changes: 8 additions & 0 deletions spring-postgres/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
21 changes: 20 additions & 1 deletion spring-postgres/backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,30 @@
# 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
RUN mvn dependency:go-offline

COPY src /workdir/server/src
RUN mvn install
RUN mkdir -p target/depency

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 / /
CMD ["mvn", "spring-boot:run"]

FROM builder as prepare-production
RUN mkdir -p target/dependency
WORKDIR /workdir/server/target/dependency
RUN jar -xf ../*.jar

Expand Down

0 comments on commit 9d547d2

Please sign in to comment.