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
266 lines
8.8 KiB
YAML
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
|