services: frontend: image: ghcr.io/shuffle/shuffle-frontend:1.4.1 container_name: shuffle-frontend hostname: shuffle-frontend ports: - "${FRONTEND_PORT}:80" - "${FRONTEND_PORT_HTTPS}:443" networks: - shuffle environment: - BACKEND_HOSTNAME=${BACKEND_HOSTNAME} restart: unless-stopped depends_on: - backend backend: image: ghcr.io/shuffle/shuffle-backend:1.4.1 container_name: shuffle-backend hostname: ${BACKEND_HOSTNAME} # Here for debugging: ports: - "${BACKEND_PORT}:5001" networks: - shuffle volumes: - /var/run/docker.sock:/var/run/docker.sock - ${SHUFFLE_APP_HOTLOAD_LOCATION}:/shuffle-apps:z - ${SHUFFLE_FILE_LOCATION}:/shuffle-files:z env_file: .env environment: #- DOCKER_HOST=tcp://docker-socket-proxy:2375 - SHUFFLE_APP_HOTLOAD_FOLDER=/shuffle-apps - SHUFFLE_FILE_LOCATION=/shuffle-files restart: unless-stopped orborus: image: ghcr.io/shuffle/shuffle-orborus:1.4.0 container_name: shuffle-orborus hostname: shuffle-orborus networks: - shuffle volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - SHUFFLE_APP_SDK_TIMEOUT=300 - SHUFFLE_ORBORUS_EXECUTION_CONCURRENCY=7 # The amount of concurrent executions Orborus can handle. #- DOCKER_HOST=tcp://docker-socket-proxy:2375 - ENVIRONMENT_NAME=Shuffle - ORG_ID=Shuffle - BASE_URL=http://${OUTER_HOSTNAME}:5001 - DOCKER_API_VERSION=1.40 - HTTP_PROXY=${HTTP_PROXY} - HTTPS_PROXY=${HTTPS_PROXY} - SHUFFLE_PASS_WORKER_PROXY=${SHUFFLE_PASS_WORKER_PROXY} - SHUFFLE_PASS_APP_PROXY=${SHUFFLE_PASS_APP_PROXY} - SHUFFLE_STATS_DISABLED=true - SHUFFLE_SWARM_CONFIG=run - SHUFFLE_LOGS_DISABLED=true - SHUFFLE_WORKER_IMAGE=ghcr.io/shuffle/shuffle-worker:1.4.1 env_file: .env restart: unless-stopped security_opt: - seccomp:unconfined opensearch: image: opensearchproject/opensearch:2.14.0 hostname: shuffle-opensearch container_name: shuffle-opensearch environment: - "OPENSEARCH_JAVA_OPTS=-Xms2048m -Xmx2048m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM - bootstrap.memory_lock=true - DISABLE_PERFORMANCE_ANALYZER_AGENT_CLI=true - cluster.initial_master_nodes=shuffle-opensearch - cluster.routing.allocation.disk.threshold_enabled=false - cluster.name=shuffle-cluster - node.name=shuffle-opensearch - node.store.allow_mmap=false - discovery.seed_hosts=shuffle-opensearch - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${SHUFFLE_OPENSEARCH_PASSWORD} ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - shuffle-database:/usr/share/opensearch/data:z ports: - 9200:9200 networks: - shuffle restart: unless-stopped #memcached: # image: memcached:latest # container_name: shuffle-cache # hostname: shuffle-cache # mem_limit: 1024m # environment: # - MEMCACHED_MEMORY=1024 # - MEMCACHED_MAX_CONNECTIONS=2500 # ports: # - 11211:11211 #docker-socket-proxy: # image: tecnativa/docker-socket-proxy # container_name: docker-socket-proxy # hostname: docker-socket-proxy # privileged: true # environment: # - SERVICES=1 # - TASKS=1 # - NETWORKS=1 # - NODES=1 # - BUILD=1 # - IMAGES=1 # - GRPC=1 # - CONTAINERS=1 # - PLUGINS=1 # - SYSTEM=1 # - VOLUMES=1 # - INFO=1 # - DISTRIBUTION=1 # - POST=1 # - AUTH=1 # - SECRETS=1 # - SWARM=1 # volumes: # - /var/run/docker.sock:/var/run/docker.sock # networks: # - shuffle # volumes: shuffle-database: driver: local driver_opts: type: none device: ${DB_LOCATION} o: bind networks: shuffle: driver: bridge # driver_opts: # com.docker.network.driver.mtu: 1460 # uncomment to set MTU for swarm mode. MTU should be whatever is your host's preferred MTU is: https://shuffler.io/docs/troubleshooting#TLS_timeout_error/Timeout_Errors/EOF_Errors