Orchestrating Telstar with Docker Compose
Example Docker Compose Yaml Files
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:amd64-2.0-RC3.4"
command: "server --port 6512 --init"
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
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 server (telstar-server-03) includes an environment variable that ensures that it uses the secondary database. This secondary database collection is typically used to test content before publishing it to the primary database collection. Further details of all of the available environment variables can be found in the section Configuration Options. In addition, the Telstar API is launched as a separate container.
version: "3.8"
services:
telstar-01:
container_name: "telstar-server-01"
build: .
image: "johnnewcombe/telstar:amd64-2.0-RC3.4"
command: "server --port 6512 --init" # 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:amd64-2.0-RC3.4"
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:amd64-2.0-RC3.4"
command: "server --port 6514 --init" # 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:amd64-2.0-RC3.4"
command: "api --port 8001 --init"
ports:
- target: 8001
published: 8001
networks:
- telstar-network
depends_on:
- mongodb
environment:
- TELSTAR_API_USERID=2222222222
- TELSTAR_API_PASSWORD=1234
- TELSTAR_COOKIE_SECRET=<place yout secret here> # define this for yourself and keep it secret, a GUID is a good option.
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