Skip to content
Snippets Groups Projects
docker-compose.yml 3.15 KiB
Newer Older
Nils Schneider's avatar
Nils Schneider committed
version: '3'
services:
  web:
Paul's avatar
Paul committed
    image: registry.chaotikum.net/icebox/icebox-web
Your Name's avatar
Your Name committed
    restart: always
    depends_on:
Nils Schneider's avatar
Nils Schneider committed
    - backend
Paul's avatar
Paul committed
    expose:
      - 8080
      - 8081
    labels:
      - "traefik.enable=true"
Paul's avatar
Paul committed
      - 'traefik.http.routers.web.entrypoints=web'
Paul's avatar
Paul committed
      - "traefik.http.routers.web.rule=Host(`icebox.nobreakspace.org`) || Host(`icebox`) || Host(`web.icebox.nobreakspace.org`)"
Nils Schneider's avatar
Nils Schneider committed
    environment:
      ICEBOX_API_HOST: backend
      ICEBOX_API_PORT: 8081
      ICEBOX_WEB_PORT: 8080
Paul's avatar
Paul committed
      IMAGE_SERVICE: "images.icebox.nobreakspace.org"


Your Name's avatar
Your Name committed
  web-vue:
    image: registry.chaotikum.net/icebox/icebox-vuetified
Your Name's avatar
Your Name committed
    restart: always
    depends_on:
Paul's avatar
Paul committed
      - backend
    expose:
      - 80
    labels:
      - "traefik.enable=true"
      - 'traefik.http.routers.vue.entrypoints=web'
      - 'traefik.http.routers.vue.rule=Host(`vue.icebox.nobreakspace.org`)'


Paul's avatar
Paul committed
  image-service:
Paul's avatar
Paul committed
    image: registry.chaotikum.net/icebox/icebox-image-service
Paul's avatar
Paul committed
    restart: always
    depends_on:
    - backend
Paul's avatar
Paul committed
    expose:
Paul's avatar
Paul committed
      - 80
Paul's avatar
Paul committed
    labels:
      - "traefik.enable=true"
      - 'traefik.http.routers.images.entrypoints=web'
Paul's avatar
Paul committed
      - 'traefik.http.routers.images.rule=Host(`images.icebox.nobreakspace.org`)'
Nils Schneider's avatar
Nils Schneider committed
  alias:
Paul's avatar
Paul committed
    image: registry.chaotikum.net/icebox/iceboxalias
Your Name's avatar
Your Name committed
    restart: always
Nils Schneider's avatar
Nils Schneider committed
    environment:
    - ICEBOX_DB_URL=postgresql://icebox:clubmate42@database/icebox
    depends_on:
Nils Schneider's avatar
Nils Schneider committed
    - database
Nils Schneider's avatar
Nils Schneider committed
  backend:
    image: registry.chaotikum.net/icebox/icebox-service
Your Name's avatar
Your Name committed
    restart: always
    depends_on:
Paul's avatar
Paul committed
      - database
    expose:
      - 8081
    labels:
      - "traefik.enable=true"
      - 'traefik.http.routers.api.entrypoints=web'
      - 'traefik.http.routers.api.rule=Host(`api.icebox.nobreakspace.org`)'
Nils Schneider's avatar
Nils Schneider committed
    environment:
      ICEBOX_DB_HOST: database
      ICEBOX_DB_PORT: 5432
      ICEBOX_DB_USER: icebox
      ICEBOX_DB_PSW: clubmate42
      ICEBOX_DB_NAME: icebox
Paul's avatar
Paul committed
  # pgadmin:
  #   build: pgadmin4
  #   restart: always
  #   environment:
  #     PGADMIN_DEFAULT_PASSWORD: clubmate42
  #     PGADMIN_DEFAULT_EMAIL: icebox@nobreakspace.org

Nils Schneider's avatar
Nils Schneider committed
  database:
Paul's avatar
Paul committed
    image: postgres:12
Your Name's avatar
Your Name committed
    restart: always
Nils Schneider's avatar
Nils Schneider committed
    environment:
     POSTGRES_PASSWORD: clubmate42
     POSTGRES_USER: icebox
     POSTGRES_DB: icebox
    volumes:
Your Name's avatar
Your Name committed
    - icebox-data:/var/lib/postgresql/data
Paul's avatar
Paul committed

Paul's avatar
Paul committed
  icebox-exporter:
Paul's avatar
Paul committed
    image: registry.chaotikum.net/icebox/prometheus-icebox-exporter
Paul's avatar
Paul committed
    restart: always
Paul's avatar
Paul committed
    expose:
      - 8000
Paul's avatar
Paul committed
    environment:
Paul's avatar
Paul committed
      ICEBOX_URL: http://backend:8081
Paul's avatar
Paul committed
    labels:
      - "traefik.enable=true"
Paul's avatar
Paul committed
      - 'traefik.http.routers.exporter.entrypoints=web'
      - 'traefik.http.routers.exporter.rule=Host(`api.icebox.nobreakspace.org`) && PathPrefix(`/metrics`)'
Paul's avatar
Paul committed

Your Name's avatar
Your Name committed

Paul's avatar
Paul committed
  traefik:
    image: traefik:v2.5
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
    - web
    - web-vue
    - alias
    - backend
Paul's avatar
Paul committed
    networks:
      default:
Paul's avatar
Paul committed
      public:
        ipv4_address: 172.23.208.37
        ipv6_address: 2a01:170:1112::0.0.0.37
Your Name's avatar
Your Name committed
volumes:
  icebox-data:
    external: true
Paul's avatar
Paul committed

networks:
  public:
    external:
      name: space_net