Install docker and docker-compose.
The following steps will bring up a docker container that is running the Temporal server
and its dependencies (cassandra). The Temporal
frontend is exposed on port 7233.
$ cd docker
$ docker-compose upView Temporal web UI at localhost:8088.
Use Temporal CLI with docker run --network=host --rm temporalio/tctl:latest.
For example to register new namespace test-namespace with 1 retention day:
docker run --network=host --rm temporalio/tctl:latest --ns test-namespace namespace register -rd 1`With every tagged release of the temporal server, there is also a corresponding docker image that's uploaded to docker hub. In addition, the release will also contain a docker.tar.gz file (docker-compose startup scripts). Download the latest docker.tar.gz.
Execute the following
commands to start a pre-built image along with all dependencies (i.e. cassandra, mysql, elasticsearch, etc).
$ curl -L https://github.com/temporalio/temporal/releases/latest/download/docker.tar.gz | tar -xz
$ cd docker
$ docker-compose upReplace YOUR_TAG and YOUR_CHECKOUT_BRANCH in the below command to build:
$ git checkout YOUR_CHECKOUT_BRANCH
$ docker build . -t temporalio/auto-setup:YOUR_TAG --build-arg TARGET=auto-setupReplace the tag of image: temporalio/auto-setup to YOUR_TAG in docker-compose.yml.
Then restart the service using the below commands:
$ docker-compose down
$ docker-compose upRun Temporal with MySQL instead of Cassandra, use following commads:
$ docker-compose -f docker-compose-mysql.yml upPlease note that PostreSQL support is still in active developement, and it is not production ready yet.
Run Temporal with ElasticSearch for enhanced visibility queries:
$ docker-compose -f docker-compose-es.yml upIn a typical production setting, dependencies (cassandra) are
managed/started independently of the temporal-server. To use the container in
a production setting, use the following command:
$ docker run -e CASSANDRA_SEEDS=10.x.x.x -- csv of cassandra server ipaddrs
-e KEYSPACE=<keyspace> -- Cassandra keyspace
-e VISIBILITY_KEYSPACE=<visibility_keyspace> -- Cassandra visibility keyspace
-e SKIP_SCHEMA_SETUP=true -- do not setup cassandra schema during startup
-e RINGPOP_SEEDS=10.x.x.x,10.x.x.x \ -- csv of ipaddrs for gossip bootstrap
-e NUM_HISTORY_SHARDS=1024 \ -- Number of history shards
-e SERVICES=history,matching \ -- Spinup only the provided services
-e LOG_LEVEL=debug,info \ -- Logging level
-e DYNAMIC_CONFIG_FILE_PATH=config/foo.yaml -- Dynamic config file to be watched
temporalio/server:<tag>