add configuration to use spring-postgres sample with Docker Dev Environments feature (#258)

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

Co-authored-by: Milas Bowman <milasb@gmail.com>
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
This commit is contained in:
Guillaume Lours 2022-07-09 00:51:47 +02:00 committed by GitHub
parent eb837eba55
commit 9d547d23fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 62 additions and 1 deletions

View File

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

View File

@ -77,3 +77,11 @@ Removing spring-postgres_db_1 ... done
Removing spring-postgres_backend_1 ... done Removing spring-postgres_backend_1 ... done
Removing network spring-postgres_default 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)

View File

@ -1,3 +1,5 @@
# syntax=docker/dockerfile:1.4
FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17 AS builder FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17 AS builder
WORKDIR /workdir/server WORKDIR /workdir/server
COPY pom.xml /workdir/server/pom.xml COPY pom.xml /workdir/server/pom.xml
@ -5,7 +7,24 @@ RUN mvn dependency:go-offline
COPY src /workdir/server/src COPY src /workdir/server/src
RUN mvn install 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 WORKDIR /workdir/server/target/dependency
RUN jar -xf ../*.jar RUN jar -xf ../*.jar