Files
upstream-rocketchat/docker-compose-ci.yml
upstream-mirror 30810eecd7
Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Code scanning - action / CodeQL-Build (push) Failing after 2s
snapshot of https://github.com/RocketChat/Rocket.Chat.git (develop, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:21:02 +05:00

266 lines
8.8 KiB
YAML

services:
rocketchat:
volumes:
- ${COVERAGE_DIR:-/tmp/coverage}:${COVERAGE_DIR:-/tmp/coverage}
build:
dockerfile: ${GITHUB_WORKSPACE:-}/apps/meteor/.docker/Dockerfile.alpine
context: /tmp/build
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
DENO_VERSION: ${DENO_VERSION:-}
image: ghcr.io/${LOWERCASE_REPOSITORY}/rocket.chat:${DOCKER_TAG}${DOCKER_TAG_SUFFIX_ROCKETCHAT:-}
environment:
- 'TEST_MODE=${TEST_MODE:-true}'
- APPS_ENGINE_RUNTIME_BACKEND=${APPS_ENGINE_RUNTIME_BACKEND:-}
- DEBUG=${DEBUG:-}
- EXIT_UNHANDLEDPROMISEREJECTION=true
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'MONGO_OPLOG_URL=${MONGO_OPLOG_URL:-}'
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
- 'ROCKETCHAT_LICENSE=${ENTERPRISE_LICENSE:-}'
- 'COVERAGE_DIR=${COVERAGE_DIR:-}'
- 'COVERAGE_REPORTER=${COVERAGE_REPORTER:-}'
- 'COVERAGE_FILE_NAME=${COVERAGE_FILE_NAME:-}'
- OVERWRITE_SETTING_Log_Level=${DEBUG_LOG_LEVEL:-0}
- Federation_Service_Enabled=true
- 'Federation_Service_Domain=rc.host'
- HEAP_USAGE_PERCENT=99
# keep server sockets alive longer than traefik's 90s idleConnTimeout so
# the proxy always closes pooled conns first and never reuses a dead one
- HTTP_SOCKET_TIMEOUT_MS=120000
depends_on:
- traefik
- mongo
labels:
traefik.enable: true
traefik.http.services.rocketchat.loadbalancer.server.port: 3000
traefik.http.routers.rocketchat.service: rocketchat
traefik.http.routers.rocketchat.rule: PathPrefix(`/`)
traefik.http.routers.rocketchat.middlewares: test-retry
traefik.http.middlewares.test-retry.retry.attempts: 4
# dedicated route for dynamic-import: buffering coalesces the tiny POST
# into a single upstream write, closing the go-transport early-response
# race window (response beating the request-write bookkeeping kills the
# conn mid body copy); scoped here because suite-wide buffering broke
# 404/CORS response semantics
traefik.http.routers.rocketchat-dynimport.rule: PathPrefix(`/__meteor__/dynamic-import`)
traefik.http.routers.rocketchat-dynimport.service: rocketchat
traefik.http.routers.rocketchat-dynimport.middlewares: test-buffer,test-retry
traefik.http.middlewares.test-buffer.buffering.retryExpression: IsNetworkError() && Attempts() < 4
healthcheck:
interval: 2s
timeout: 5s
retries: 5
start_period: 60s
test: wget --no-verbose --tries=1 --spider http://127.0.0.1:3000/livez || exit 1
authorization-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/authorization-service
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: authorization-service
image: ghcr.io/${LOWERCASE_REPOSITORY}/authorization-service:${DOCKER_TAG}
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
account-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/account-service
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: account-service
image: ghcr.io/${LOWERCASE_REPOSITORY}/account-service:${DOCKER_TAG}
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
presence-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/presence-service
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: presence-service
image: ghcr.io/${LOWERCASE_REPOSITORY}/presence-service:${DOCKER_TAG}
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
ddp-streamer-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/ddp-streamer
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: ddp-streamer
image: ghcr.io/${LOWERCASE_REPOSITORY}/ddp-streamer-service:${DOCKER_TAG}
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
- traefik
labels:
traefik.enable: true
traefik.http.services.ddp-streamer-service.loadbalancer.server.port: 3000
traefik.http.routers.ddp-streamer-service.service: ddp-streamer-service
traefik.http.routers.ddp-streamer-service.rule: PathPrefix(`/websocket`) || PathPrefix(`/sockjs`)
queue-worker-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/queue-worker
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: queue-worker
image: ghcr.io/${LOWERCASE_REPOSITORY}/queue-worker-service:${DOCKER_TAG}
environment:
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
omnichannel-transcript-service:
build:
dockerfile: ${GITHUB_WORKSPACE:-}/ee/apps/Dockerfile
context: out/omnichannel-transcript
target: release-standard
x-bake:
platforms:
- linux/amd64
- linux/arm64
args:
SERVICE: omnichannel-transcript
image: ghcr.io/${LOWERCASE_REPOSITORY}/omnichannel-transcript-service:${DOCKER_TAG}
environment:
- 'TEST_MODE=${TEST_MODE:-true}'
- MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs0
- 'TRANSPORTER=${TRANSPORTER:-}'
- MOLECULER_LOG_LEVEL=info
extra_hosts:
- 'host.docker.internal:host-gateway'
depends_on:
- nats
nats:
image: nats:2.6-alpine
mongo:
image: mongodb/mongodb-community-server:${MONGODB_VERSION:-8.0}-ubi8
container_name: mongo
restart: on-failure
ports:
- 27017:27017
environment:
MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongo}
entrypoint: |
bash -c
"mongod --replSet $$MONGODB_REPLICA_SET_NAME --bind_ip_all &
sleep 2;
until mongosh --eval \"db.adminCommand('ping')\"; do
echo '=====> Waiting for Mongo...';
sleep 1;
done;
echo \"=====> Initiating ReplSet $$MONGODB_REPLICA_SET_NAME at $$MONGODB_INITIAL_PRIMARY_HOST:$$MONGODB_PORT_NUMBER...\";
mongosh --eval \"rs.initiate({_id: '$$MONGODB_REPLICA_SET_NAME', members: [{ _id: 0, host: '$$MONGODB_INITIAL_PRIMARY_HOST:$$MONGODB_PORT_NUMBER' }]})\";
echo '=====> Initiating ReplSet done...';
wait"
httpbin:
image: kong/httpbin
mock-server:
image: ghcr.io/rocketchat/mockserver@sha256:aa4de5e0dd07ad4ab8849fbb2c67eedfcc98b27f9ddd6b54809409e6f9e8f53f
profiles:
- api
ports:
- 4000:8080
networks:
default:
# single-label hostnames fail server-fetch SSRF domain validation and message-parser only links TLDs
# from its whitelist (.local/.test/.internal are not in it), so tests reach it through this alias
aliases:
- mock-server.dev
healthcheck:
test: ['CMD', '/mock-server', '-healthcheck']
interval: 2s
timeout: 5s
retries: 5
traefik:
image: traefik:v3.6.6
command:
- --providers.docker=true
ports:
- 3000:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
openldap:
image: bitnamilegacy/openldap:latest
volumes:
- ./development/ldap:/opt/bitnami/openldap/data/
environment:
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=adminpassword
- LDAP_ROOT=dc=space,dc=air
- LDAP_ADMIN_DN=cn=admin,dc=space,dc=air
- LDAP_CUSTOM_LDIF_DIR=/opt/bitnami/openldap/data
- LDAP_LOGLEVEL=-1
- BITNAMI_DEBUG=false
ports:
- 1389:1389
- 1636:1636