-
Notifications
You must be signed in to change notification settings - Fork 0
Traefik
TODO: Skrive en artikkel for hvorfor vi har en reverse proxy
Vi bruker version 2.0 av traefik
Vi bruker et repo, hilfling-server for server-wide configs, som reverse proxy (traefik) og eventuelle load-balancers og caching muligheter vi kanskje legger til i fremtiden.
Siden siden kodebasen vår ligger i flere repos og derfor har flere docker-compose stacks har vi laget et externt docker network som er uavhengig lokale docker stacks. For å lage nettverket brukte vi følgende kommando.
docker network create traefik
Ellers er all treafik configurasjon til nå i docker-compose.yml i dette repoet. Vi har gjort webui tilgjengelig på port :8080 For mer dokumentasjon sjekk ut https://docs.traefik.io/providers/docker/
In a nutshell, alt som trengs for å publisere nye tjenester under domene er å legge til det eksterne nettverket traefik
til docker-stacken, og deretter sette traefik regler ved å legge til labels i docker-compose.yml filen til prosjektet som skal publiseres.
https://github.com/Fotogjengen/hilfling-frontend-extern
Dette er en react frontend app. Så her har vi lagt til nginx for å serve de statiske filene som npm bygger. Sjekk ut Dockerfile
for å se hvordan det gjøres.
Deretter legger vi inn det eksternet nettverket til stacken ved å legge inn dette i docker-compose.yml
./docker-compose.yml
version: '2'
services:
intern-nginx:
environment:
- PUID=1000
- PGID=1000
container_name: intern-nginx
build:
context: .
dockerfile: Dockerfile
ports:
- '8181:80'
networks:
- traefik
labels:
- traefik.port = 80
- traefik.http.routers.intern-nginx.rule=Host("<exempel.domene.no>")
- traefik.http.routers.registry.service=intern-nginx
networks:
traefik:
external: true
Dette er alt som skal til. Pull endringene på serveren og kjør en docker-compose up -d
i repoet for at endringene skal tre i kraft