Wiki
Clone wikitelstar-2 / Orchestrating Telstar with Docker Compose
Orchestrating Telstar with Docker Compose
Contents
- Introduction
- Installing Telstar
- Configuration Options
- Example Content
- Frames
- Frame Schema
- Telstar Markup
- Implementing Response Frames
- Minitel Support
- Frame Routing
- Telesoftware
- Telstar Viewdata Client
- The Telstar API
- Managing Telstar with Portainer
- Orchestrating Telstar with Kubernetes
- Differences Between Version 1.x and 2.x
Introduction
Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. Given that a YAML file has been defined and stored in docker-compose.yaml, the following command will start the docker containers.
$ docker-compose up -d
To stop the containers, the following command can be used.
$ docker-compose down
Full details of Docker Compose can be found at https://docs.docker.com/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
Updated