Temporal Server docker-compose files

Temporal Server docker-compose files

This repository provides docker-compose files that enable you to run a local instance of the Temporal Server. There are a variety of docker-compose files, each utilizing a different set of dependencies. Every major or minor release of the Temporal Server has a corresponding docker-compose release.

Prerequisites

To use these files, you must first have the following installed:

How to use

The following steps will run a local instance of the Temporal Server using the default configuration file (docker-compose.yml):

  1. Clone this repository.
  2. Change directory into the root of the project.
  3. Run the docker-compose up command.
git clone https://github.com/temporalio/docker-compose.git
cd  docker-compose
docker-compose up

⚠️ If you are on an M1 Mac, you need to use Temporal v1.12. git reset 0e68621 --hard should get you there. We aim to officially support ARM images soon.

After the Server has started, you can open the Temporal Web UI in your browser: http://localhost:8088.

You can also interact with the Server using a preconfigured CLI (tctl). First create an alias for tctl:

alias tctl="docker exec temporal-admin-tools tctl"

The following is an example of how to register a new namespace test-namespace with 1 day of retention:

tctl --ns test-namespace namespace register -rd 1

You can find our tctl docs on docs.temporal.io.

Get started building Workflows with a Go sample, Java sample, or write your own using one of the SDKs.

Other configuration files

The default configuration file (docker-compose.yml) uses a PostgreSQL database, an Elasticsearch instance, and exposes the Temporal gRPC Frontend on port 7233. The other configuration files in the repo spin up instances of the Temporal Server using different databases and dependencies. For example you can run the Temporal Server with MySQL and Elastic Search with this command:

docker-compose -f docker-compose-mysql-es.yml up

Here is a list of available files and the dependencies they use.

File Description
docker-compose.yml PostgreSQL and Elasticsearch (default)
docker-compose-postgres.yml PostgreSQL
docker-compose-cas.yml Cassandra
docker-compose-cas-es.yml Cassandra and Elasticsearch
docker-compose-mysql.yml MySQL
docker-compose-mysql-es.yml MySQL and Elasticsearch
docker-compose-cockroach.yml CockroachDB
docker-compose-cockroach-es.yml CockroachDB and Elasticsearch

Use a custom image configuration

If you want, you can even use a custom Docker image of the Temporal Server.

Clone the main Temporal Server repo: https://github.com/temporalio/temporal:

git clone https://github.com/temporalio/temporal.git

In the following command, replace <YOUR_TAG> and <YOUR_COMMIT> to build the custom Docker image:

git checkout <YOUR_COMMIT>
docker build . -t temporalio/auto-setup:<YOUR_TAG> --build-arg TARGET=auto-setup

Next, in the docker-compose.yml file, replace the services.temporal.image configuration value with <YOUR_TAG>.

Then run the docker-compose up command:

docker-compose up

Quickstart for production

In a typical production setting, dependencies such as cassandra or elasticsearch 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 NUM_HISTORY_SHARDS=1024  \                       -- Number of history shards
    -e SERVICES=history,matching \                      -- Spin-up 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>
Similar Resources

Monitoring Go application inside docker container by InfluxDB, Telegraf, Grafana

Monitoring Go application inside docker container by InfluxDB, Telegraf, Grafana

REST API for TreatField app Docker compose for TIG and Golang simple app: https://github.com/tochytskyi/treatfield-api/blob/main/docker-compose.yml Gr

Nov 6, 2021

A Simple Bank Web Service implemented in Go, HTTP & GRPC, PostgreSQL, Docker, Kubernetes, GitHub Actions CI

simple-bank Based on this Backend Master Class by TECH SCHOOL: https://youtube.com/playlist?list=PLy_6D98if3ULEtXtNSY_2qN21VCKgoQAE Requirements Insta

Dec 9, 2021

Bank-End Master Class [ Golang, Postges, Docker ]

Simple Bank This repository contains the codes of the Backend master class course by TECH SCHOOL. In this backend master class, we’re going to learn e

Dec 14, 2021

With Docker and Go, Mysql, Redis, Selenium.

golang-app Go, Mysql, Redis, Selenium. To run locally Have docker & docker-compose installed on your operating system. cp .env.example .env && docker-

Aug 31, 2022

Curso Docker desde cero

Curso Docker desde cero Según la última encuesta realizada por Stack OverFlow, publicada en febrero de 2020, Docker se posiciona en la casilla número

Aug 29, 2022

Easily create & extract archives, and compress & decompress files of various formats

archiver Introducing Archiver 3.1 - a cross-platform, multi-format archive utility and Go library. A powerful and flexible library meets an elegant CL

Jan 7, 2023

The forgotten go tool that executes and caches binaries included in go.mod files.

The forgotten go tool that executes and caches binaries included in go.mod files.

The forgotten go tool that executes and caches binaries included in go.mod files. This makes it easy to version cli tools in your projects such as gol

Sep 27, 2022

elPrep: a high-performance tool for analyzing sequence alignment/map files in sequencing pipelines.

elPrep: a high-performance tool for analyzing sequence alignment/map files in sequencing pipelines.

Overview elPrep is a high-performance tool for analyzing .sam/.bam files (up to and including variant calling) in sequencing pipelines. The key advant

Nov 2, 2022

View the script files in the original Resident Evil 2 / Biohazard 2 as pseudocode

View the script files in the original Resident Evil 2 / Biohazard 2 as pseudocode

Resident Evil 2 Script Viewer About You can view the script files in the original Resident Evil 2 / Biohazard 2 as pseudocode next to the original byt

Jan 20, 2022
Small proof of concept project to try temporal.io with Dispatch Incident Management from Netflix.
Small proof of concept project to try temporal.io with Dispatch Incident Management from Netflix.

temporal-dispatch-poc Small POC project to try out the Temporal workflow engine together with Netflix's Dispatch Incident Management System. Supported

Nov 12, 2021
An experimental distribution of Temporal that runs as a single process

Temporalite ⚠️ This project is experimental and not suitable for production use. ⚠️ Temporalite is a distribution of Temporal that runs as a single pr

Dec 31, 2022
Example project for Temporal microservice orchestarion.
Example project for Temporal microservice orchestarion.

Temporal Microservice Introduction This project is created to understand Temporal's Microservice approachment. The repo contains: Example Temporal Mic

Oct 4, 2022
The temporal cloud cli.

tcld (Beta) A cli tool for managing Temporal Cloud namespaces. This cli tool is currently in beta and access to Temporal Cloud via the cli is restrict

Nov 1, 2022
Docker CE

Docker CE ⚠️ This repository is now deprecated and will be archived ⚠️ Starting with the Docker 20.10 release, packages for the Docker Engine and Dock

Jan 6, 2023
Gorsair hacks its way into remote docker containers that expose their APIs
Gorsair hacks its way into remote docker containers that expose their APIs

Gorsair Gorsair is a penetration testing tool for discovering and remotely accessing Docker APIs from vulnerable Docker containers. Once it has access

Dec 31, 2022
TUI Client for Docker
TUI Client for Docker

docui - TUI Client for Docker Written in Go About docui docui is a TUI Client for Docker. It can do the following: image search/pull/remove save/impor

Dec 28, 2022
Experimental code execution microservice based on Docker containers.
Experimental code execution microservice based on Docker containers.

ranna ランナー - Experimental code runner microservice based on Docker containers. ⚠ PLEASE READ BEFORE USE First of all, this project is currently work i

Dec 9, 2022
Generate random, pronounceable, sometimes even memorable, "superhero like" codenames - just like Docker does with container names.

Codename an RFC1178 implementation to generate pronounceable, sometimes even memorable, "superheroe like" codenames, consisting of a random combinatio

Dec 11, 2022
Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9

clone3-workaround: Workaround for running ubuntu:21.10, fedora:35, and other glibc >= 2.34 distros on Docker <= 20.10.9 Old container engines such as

Dec 1, 2022