blob: 064880a0f10d6fbe3e75dd08a7aba32fc253b039 [file] [log] [blame]
# The local cluster playground setup using Docker
# The composer uses the local built image:
# `bazelisk run //temporal:temporal-server`
# `bazelisk run @com_github_temporal_ui//:temporal-ui`
#
# The local instances can be started from the root dir:
# `docker volume create dbdata`
# `docker compose -f temporal/docker-compose.yml up`
version: "3.5"
services:
cockroach:
cap_drop:
- ALL
command:
- start-single-node
- --insecure
container_name: temporal-cockroach
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]
interval: 5s
timeout: 3s
retries: 5
start_period: 10s
hostname: cockroach
image: cockroachdb/cockroach
networks:
- temporal-network
ports:
- 26257:26257
restart: on-failure:5
security_opt:
- no-new-privileges
tty: false
volumes:
- dbdata:/cockroach/cockroach-data
temporal-init-db:
container_name: temporal-init-db
depends_on:
cockroach:
condition: service_healthy
environment:
- DB=postgresql
- DB_PORT=26257
- POSTGRES_USER=root
- POSTGRES_PWD=
- POSTGRES_SEEDS=postgres
image: gcr.io/skia-public/temporal:latest
links:
- cockroach:postgres
networks:
- temporal-network
ports:
- 7233:7233
entrypoint: /etc/temporal/entrypoint.sh init-db
temporal-init:
container_name: temporal-init
depends_on:
temporal-init-db:
condition: service_completed_successfully
image: gcr.io/skia-public/temporal:latest
environment:
- TEMPORAL_ADDRESS=temporal:7233
- DB=postgresql
- DB_PORT=26257
- POSTGRES_USER=root
- POSTGRES_PWD=
- POSTGRES_SEEDS=postgres
networks:
- temporal-network
entrypoint: /etc/temporal/entrypoint.sh setup-server
temporal:
container_name: temporal
depends_on:
temporal-init:
condition: service_completed_successfully
environment:
- DB=postgresql
- DB_PORT=26257
- POSTGRES_USER=root
- POSTGRES_PWD=
- POSTGRES_SEEDS=postgres
image: gcr.io/skia-public/temporal:latest
links:
- cockroach:postgres
networks:
- temporal-network
ports:
- 7233:7233
entrypoint: /etc/temporal/entrypoint.sh start-server
temporal-ui:
container_name: temporal-ui
depends_on:
temporal:
condition: service_healthy
environment:
- TEMPORAL_ADDRESS=temporal:7233
- TEMPORAL_CORS_ORIGINS=http://localhost:3000
image: docker.io/temporalio/ui@sha256:bb9e9bc2ecb4962f43ef72b7f03a3d3f22f0df3eb5ec7c409bcae3d0135b88bc
networks:
- temporal-network
ports:
- 8080:8080
networks:
temporal-network:
driver: bridge
name: temporal-network
volumes:
# Run `docker volume create dbdata` to create a volume first
# so the data can be persisted.
dbdata:
external: true