From 2044e81f9ee056901acaf8c98aa5714ce60d1f29 Mon Sep 17 00:00:00 2001 From: Jayden Pyles Date: Tue, 25 Jun 2024 18:55:52 -0500 Subject: [PATCH] wip: add traefik --- Makefile | 11 +++++++---- docker-compose.dev.yml | 2 ++ docker-compose.yml | 21 ++++++++++++++++++++- traefik.toml | 20 ++++++++++++++++++++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 traefik.toml diff --git a/Makefile b/Makefile index ae45066..52b9c0e 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,9 @@ COMPOSE_DEV = docker-compose -f docker-compose.yml -f docker-compose.dev.yml COMPOSE_PROD = docker-compose -f docker-compose.yml +HOSTNAME_PROD = ... +HOSTNAME_DEV = localhost + .PHONY: help deps build pull up-prod up-dev down help: @@ -11,7 +14,7 @@ help: @echo " make deps - Build frontend assets" @echo " make build - Build Docker images" @echo " make pull - Pull Docker images" - @echo " make up-prod - Start production environment" + @echo " make up-prd - Start production environment" @echo " make up-dev - Start development environment" @echo " make down - Stop and remove containers, networks, images, and volumes" @@ -29,11 +32,11 @@ build: pull: docker-compose pull -up-prod: - $(COMPOSE_PROD) up -d +up-prd: + HOSTNAME=$(HOSTNAME_PROD) $(COMPOSE_PROD) up -d up-dev: - $(COMPOSE_DEV) up -d + HOSTNAME=$(HOSTNAME_DEV) $(COMPOSE_DEV) up -d down: $(COMPOSE_DEV) down diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 5cb6d53..c1d9fd3 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -4,3 +4,5 @@ services: volumes: - "$PWD/dist:/project/api/dist" - "$PWD/api/backend:/project/api/backend" + ports: + - "8000:8000" diff --git a/docker-compose.yml b/docker-compose.yml index 0d1ff61..01b5f76 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,5 +4,24 @@ services: build: context: ./ container_name: frontend + labels: + - "traefik.enable=true" + - "traefik.http.routers.frontend.rule=Host(`${HOSTNAME}`)" + - "traefik.http.routers.frontend.entrypoints=web" + - "traefik.http.services.frontend.loadbalancer.server.port=8000" + - "traefik.http.routers.frontend.tls=false" + networks: + - web + traefik: + image: traefik:latest + container_name: traefik ports: - - "8000:8000" + - 80:80 + - 443:443 + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "./traefik.toml:/etc/traefik/traefik.toml" + networks: + - web +networks: + web: diff --git a/traefik.toml b/traefik.toml new file mode 100644 index 0000000..7dce05d --- /dev/null +++ b/traefik.toml @@ -0,0 +1,20 @@ +[entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.websecure] + address = ":443" + +[providers] + [providers.docker] + endpoint = "unix:///var/run/docker.sock" + exposedByDefault = false + +[api] + dashboard = true + insecure = true + +[certificatesResolvers.myresolver.acme] + email = "your-email@example.com" + storage = "acme.json" + [certificatesResolvers.myresolver.acme.tlsChallenge]