Orchestrating Telstar with Docker Compose
Jump to navigation
Jump to search
The following docker-compose yaml file can be used to manage the TELSTAR application and associated *mongo* database.
version: "3.8" services: telstar-01: container_name: "telstar-server" image: "johnnewcombe/telstar" command: "server --port 6512 --install" # install to the primary database ports: - target: 6512 published: 6512 networks: - telstar-network volumes: - type: volume source: telstar-volume target: /opt/telstar/volume depends_on: - mongodb environment: - TELSTAR_SERVER=AUSTEN mongodb: container_name: "telstar-mongo" image: "mongo" ports: - target: 27017 published: 27017 networks: telstar-network: environment: - MONGO_INITDB_ROOT_USERNAME=mongoadmin - MONGO_INITDB_ROOT_PASSWORD=secret networks: telstar-network: name: telstar-network volumes: telstar-volume: name: telstar-volume
The following docker-compose file starts three TELSTAR servers all talking to the same database server, however the third TELSTAR server (telstar-server-03) uses the *secondary* database. This *secondary* database collection is typically used to test content before publishing it to the primary database collection. In addition the TELSTAR API is launced as a separate container.
version: "3.8" services: telstar-01: container_name: "telstar-server-01" build: . image: "johnnewcombe/telstar" command: "server --port 6512 --install" # install to the primary database ports: - target: 6512 published: 6512 networks: - telstar-network volumes: - type: volume source: telstar-volume target: /opt/telstar/volume depends_on: - mongodb environment: - TELSTAR_SERVER_DISPLAY_NAME=AUSTEN telstar-02: container_name: "telstar-server-02" image: "johnnewcombe/telstar" command: "server --port 6513" ports: - target: 6513 published: 6513 networks: - telstar-network volumes: - type: volume source: telstar-volume target: /opt/telstar/volume depends_on: - mongodb environment: - TELSTAR_SERVER_DISPLAY_NAME=ELIOT telstar-03: container_name: "telstar-server-03" image: "johnnewcombe/telstar" command: "server --port 6514 --install" # install to the secondary database ports: - target: 6514 published: 6514 networks: - telstar-network volumes: - type: volume source: telstar-volume target: /opt/telstar/volume depends_on: - mongodb environment: - TELSTAR_SERVER_DISPLAY_NAME=HARDY - TELSTAR_DBCOLLECTION=SECONDARY telstar-api: container_name: "telstar-api" image: "johnnewcombe/telstar" command: "api --port 8001 --init" ports: - target: 8001 published: 8001 networks: - telstar-network depends_on: - mongodb environment: - TELSTAR_API_USERID=0 # User 0 has access to all pages - TELSTAR_API_PASSWORD=telstarapisecret - TELSTAR_COOKIE_SECRET=<place yout secret here> # define this for yourself and keep it secret! mongodb: container_name: "telstar-mongo" image: "mongo" ports: - target: 27017 published: 27017 networks: telstar-network: environment: - MONGO_INITDB_ROOT_USERNAME=mongoadmin - MONGO_INITDB_ROOT_PASSWORD=secret networks: telstar-network: name: telstar-network volumes: telstar-volume: name: telstar-volume