elsa-core/docker/docker-compose.yml
Sipke Schoorstra f0b84f8090
Add Azurite service to docker-compose.yml
Integrated Azurite for local Azure Storage emulation, including Blob, Queue, and Table services. Configured ports, volumes, and debug options for development purposes. This addition aims to enhance local testing and reduce dependencies on external Azure services.
2025-04-28 19:07:24 +02:00

165 lines
4.2 KiB
YAML

services:
postgres:
image: postgres:latest
command: -c 'max_connections=2000'
environment:
POSTGRES_USER: elsa
POSTGRES_PASSWORD: elsa
POSTGRES_DB: elsa
volumes:
- postgres-data:/var/lib/postgresql/data
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh # This will initialize the 'tracelens' database
ports:
- "5432:5432"
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=!Elsa2025@
ports:
- 1433:1433
volumes:
- sqlserver_data:/var/opt/mssql
mysql:
image: mysql:8.0
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: elsa
MYSQL_USER: admin
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- mysql_data2:/var/lib/mysql
oracle:
image: container-registry.oracle.com/database/free:latest
container_name: oracle-db
environment:
ORACLE_PWD: elsa
ports:
- "1521:1521"
- "5500:5500"
volumes:
- ./data/oracle-data:/opt/oracle/oradata
- ./setup/oracle-setup:/opt/oracle/scripts/setup
mongodb:
image: mongo:latest
ports:
- "127.0.0.1:27017:27017"
volumes:
- mongodb_data:/data/db
cockroachdb:
image: cockroachdb/cockroach:v22.1.0
command: start-single-node --insecure
ports:
- "26257:26257" # CockroachDB SQL port
- "8080:8080" # CockroachDB UI port
volumes:
- cockroachdb-data:/cockroach/cockroach-data
environment:
- COCKROACH_DATABASE=elsa
rabbitmq:
image: "rabbitmq:4-management"
ports:
- "15672:15672"
- "5672:5672"
redis:
image: redis:latest
ports:
- "127.0.0.1:6379:6379"
plantuml-server:
image: plantuml/plantuml-server:tomcat
container_name: plantuml-server
ports:
- 7080:8080
trace-lens:
image: docker.io/rogeralsing/tracelens:latest
pull_policy: always
depends_on:
- plantuml-server
- postgres
ports:
- 7001:5001
- 4317:4317
environment:
- PlantUml__RemoteUrl=
- ConnectionStrings__DefaultConnection=USER ID=tracelens;PASSWORD=tracelenspass;HOST=postgres;PORT=5432;DATABASE=tracelens;POOLING=true;
smtp4dev: # Mock SMTP server
image: rnwood/smtp4dev
container_name: smtp4dev
restart: always
ports:
- "3000:80" # Web interface
- "2525:25" # SMTP port
environment:
- ASPNETCORE_URLS=http://+:80
- Logging__LogLevel__Default=Information
azurite:
image: mcr.microsoft.com/azure-storage/azurite
container_name: azurite
command: >
azurite
--blobHost 0.0.0.0 --blobPort 10010
--queueHost 0.0.0.0 --queuePort 10011
--tableHost 0.0.0.0 --tablePort 10012
--location /data
--debug /data/debug.log
--skipApiVersionCheck
--loose
ports:
- "10010:10010" # Blob service
- "10011:10011" # Queue service
- "10012:10012" # Table service
volumes:
- ./azurite-data:/data
restart: always
elsa-server:
build:
context: ../.
dockerfile: ./docker/ElsaServer.Dockerfile
depends_on:
- postgres
- rabbitmq
- redis
environment:
ASPNETCORE_ENVIRONMENT: Development
PYTHONNET_PYDLL: /opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/bin/python3.11
PYTHONNET_RUNTIME: coreclr
CONNECTIONSTRINGS__POSTGRESQL: "Server=postgres;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer"
CONNECTIONSTRINGS__RABBITMQ: "amqp://guest:guest@rabbitmq:5672/"
CONNECTIONSTRINGS__REDIS: "redis:6379"
DISTRIBUTEDLOCKPROVIDER: "Postgres"
ports:
- "13000:8080"
elsa-studio:
build:
context: ../.
dockerfile: ./docker/ElsaStudio.Dockerfile
environment:
ASPNETCORE_ENVIRONMENT: Development
ELSASERVER__URL: "http://localhost:13000/elsa/api"
ports:
- "14000:8080"
volumes:
sqlserver_data:
postgres-data:
oracle-data-free1:
mysql_data2:
cockroachdb-data:
mongodb_data: