Flere Evolo Gateway på samme tjener

Skrevet av Aleksander Bless
Oppdatert 3 år siden

Vi bruker Docker Compose for å kjøre de forskjellige tjenestene som utgjør Evolo Gateway.

Når du kjører Gateway med Docker installeres tre tjenester:

- Gateway-programvaren
- InfluxDB (tidsserie-database som lagrer logger)
- Watchtower (tjeneste som oppdaterer Gateway-programvare automatisk)

docker-compose.yaml filen er oppskriften og forteller Docker hvilke tjenester som skal kjøres.

Hvis du ønsker å kjøre flere Evolo Gateway på samme tjener må du legge til flere tjenester i oppskriften.

I eksempelet ser du at jeg har lagt til en ny gateway "evolo-gateway-new". Forskjellene er navngivning av konfig-filer og databaser. Det har også blitt definert et eget volum under "volumes" for å lagre konfigurasjon.

Siden gateway bruker port 8080 til å vise frem nøkkelen for registrering kan vi bruke en unik port på utsiden og peke denne til port 8080 på innsiden av containeren. 

Definisjonen ports: - '4000:8080' gjør at når du kobler til tjenerens IP-adresse på port 4000 vil docker omdirigere den til 8080 på innsiden av gateway containeren. 

Eksempel docker-compose.yaml med flere Gateway

version: '2'
volumes:
  evolo-gateway:
  evolo-gateway-new:
  influxdb:
services:
  influx:
    image: heaven.evolo.no/influxdb:latest
    container_name: influxdb-evolo
    restart: always
    hostname: influxdb
    volumes:
      - influxdb:/var/lib/influxdb
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  evolo-gateway:
    image: heaven.evolo.no/evolo-gateway:latest
    container_name: evolo-gateway
    restart: always
    depends_on:
      - influx
    ports:
      - '4000:8080'
    volumes:
      - evolo-gateway/root/.config/configstore
    environment:
      - INFLUX_IP=influx
      - INFLUX_PORT=8086
      - INFLUX_DATABASE=evolo-gateway
      - TZ=Europe/Oslo

  evolo-gateway-new:
    image: heaven.evolo.no/evolo-gateway:latest
    container_name: evolo-gateway-new
    restart: always
    depends_on:
      - influx
    ports:
      - '4001:8080'
    volumes:
      - evolo-gateway-new:/root/.config/configstore
    environment:
      - INFLUX_IP=influx
      - INFLUX_PORT=8086
      - INFLUX_DATABASE=evolo-gateway-new
      - TZ=Europe/Oslo

Hvis tjeneren du bruker har IP-adresse 10.10.10.10 kan du hente ut nøkkel for registrering av "evolo-gateway" fra 10.10.10.10:4000 og "evolo-gateway-new" fra 10.10.10.10:4001

Svarte dette på spørsmålet ditt?