diff --git a/traefik-golang/.docker/docker-compose.yaml b/traefik-golang/.docker/docker-compose.yaml new file mode 100644 index 0000000..704fb96 --- /dev/null +++ b/traefik-golang/.docker/docker-compose.yaml @@ -0,0 +1,22 @@ +services: + frontend: + image: traefik:2.6 + command: --providers.docker --entrypoints.web.address=:80 --providers.docker.exposedbydefault=false + ports: + # The HTTP port + - "80:80" + volumes: + # So that Traefik can listen to the Docker events + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - backend + backend: + build: + context: backend + target: dev-envs + volumes: + - /var/run/docker.sock:/var/run/docker.sock + labels: + - "traefik.enable=true" + - "traefik.http.routers.go.rule=Path(`/`)" + - "traefik.http.services.go.loadbalancer.server.port=80" diff --git a/traefik-golang/README.md b/traefik-golang/README.md index f4dc3ce..55f20d1 100644 --- a/traefik-golang/README.md +++ b/traefik-golang/README.md @@ -92,3 +92,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 the backend service inside containers, you just need to use the https git url of the sample: +`https://github.com/docker/awesome-compose/tree/master/traefik-golang` + +![page](../dev-envs.png) diff --git a/traefik-golang/backend/Dockerfile b/traefik-golang/backend/Dockerfile index 949f8a3..83267f1 100644 --- a/traefik-golang/backend/Dockerfile +++ b/traefik-golang/backend/Dockerfile @@ -1,9 +1,27 @@ -FROM golang:1.13 AS build +# syntax=docker/dockerfile:1.4 + +FROM --platform=$BUILDPLATFORM golang:1.18 AS build WORKDIR /compose/hello-docker COPY main.go main.go RUN CGO_ENABLED=0 go build -o backend main.go +FROM build as dev-envs + +RUN <