wip: add traefik

This commit is contained in:
Jayden Pyles
2024-06-25 18:55:52 -05:00
parent 3c7e307162
commit 2044e81f9e
4 changed files with 49 additions and 5 deletions
+7 -4
View File
@@ -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
+2
View File
@@ -4,3 +4,5 @@ services:
volumes:
- "$PWD/dist:/project/api/dist"
- "$PWD/api/backend:/project/api/backend"
ports:
- "8000:8000"
+20 -1
View File
@@ -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:
+20
View File
@@ -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]