diff --git a/nginx-golang-postgres/.docker/docker-compose.yaml b/nginx-golang-postgres/.docker/docker-compose.yaml new file mode 100644 index 0000000..a122c87 --- /dev/null +++ b/nginx-golang-postgres/.docker/docker-compose.yaml @@ -0,0 +1,35 @@ +services: + backend: + build: + context: backend + target: dev-envs + secrets: + - db-password + depends_on: + - db + volumes: + - /var/run/docker.sock:/var/run/docker.sock + db: + image: postgres + restart: always + secrets: + - db-password + volumes: + - db-data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=example + - POSTGRES_PASSWORD_FILE=/run/secrets/db-password + expose: + - 5432 + + proxy: + build: proxy + ports: + - 80:80 + depends_on: + - backend +volumes: + db-data: +secrets: + db-password: + file: db/password.txt diff --git a/nginx-golang-postgres/README.md b/nginx-golang-postgres/README.md index 4630c76..6fea0a3 100644 --- a/nginx-golang-postgres/README.md +++ b/nginx-golang-postgres/README.md @@ -73,3 +73,11 @@ 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 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/nginx-golang-postgres` + +![page](../dev-envs.png) \ No newline at end of file diff --git a/nginx-golang-postgres/backend/Dockerfile b/nginx-golang-postgres/backend/Dockerfile index 36e9525..462dc69 100755 --- a/nginx-golang-postgres/backend/Dockerfile +++ b/nginx-golang-postgres/backend/Dockerfile @@ -1,9 +1,29 @@ -FROM golang:1.13-alpine AS build +# syntax=docker/dockerfile:1.4 + +FROM --platform=$BUILDPLATFORM golang:1.18 AS build WORKDIR /go/src/github.com/org/repo +COPY go.* . COPY . . +ENV CGO_ENABLED=0 RUN go build -o server . +FROM build as dev-envs + +RUN <