Skip to content

Traefik

Sindre J. I. Sivertsen edited this page Sep 25, 2019 · 4 revisions

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/

Publisere nye tjenester

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.

Eksempel hilfling-frontend-extern

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

Clone this wiki locally