mirror of
https://github.com/mattermost/mattermost.git
synced 2026-05-28 04:35:04 -04:00
Some checks failed
ESR Upgrade / Run ESR upgrade script from 5.37 to 7.8 (push) Has been cancelled
ESR Upgrade / Run ESR upgrade script from 5.37 to 6.3 (push) Has been cancelled
ESR Upgrade / Run ESR upgrade script from 6.3 to 7.8 (push) Has been cancelled
Server CI Master / master-ci (push) Has been cancelled
Web App CI Master / master-ci (push) Has been cancelled
* Support Elasticsearch v9 alongside v8 * Add CI workflow changes for Elasticsearch v8/v9 testing * Support Elasticsearch v7 in addition to v8/v9, add v7 CI test job Lowers the minimum supported ES version from 8 to 7 to avoid dropping v7 support in a dot release. Adds a dedicated CI job to verify v7 compatibility alongside the existing v8 and v9 (default) jobs. * Fix ES7 plugin install crash on cgroup v2 hosts * Fix ES 7 container startup on cgroup v2 Linux (GitHub Actions) ES 7 bundles JDK 11, which crashes with a NullPointerException in CgroupV2Subsystem.getMountPoint() on modern Linux kernels that use cgroup v2 (including GitHub Actions ubuntu-latest runners). The flag was already set during the Dockerfile RUN step, but not at runtime. Adding -XX:-UseContainerSupport to ES_JAVA_OPTS in docker-compose fixes the crash. The flag is harmless on ES 8/9 which ship JDK 17+ where the cgroup v2 bug is fixed (it simply opts out of container-aware JVM sizing). * Capture docker compose logs in CI test artifact * Use ES 7.17.29 for v7 CI test; remove cgroup v2 workarounds ES 7.17.0 bundled JDK 17.0.1 which had a cgroup v2 bug (CgroupV2Subsystem NPE) not fixable via -XX:-UseContainerSupport. ES 7.17.29 bundles JDK 22 where the bug is long fixed. Reverts the -XX:-UseContainerSupport workarounds added in the previous two commits as they were based on a wrong diagnosis and are no longer needed. --------- Co-authored-by: Mattermost Build <build@mattermost.com>
178 lines
5.3 KiB
YAML
178 lines
5.3 KiB
YAML
services:
|
|
mysql:
|
|
image: "mysql/mysql-server:8.0.32"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
MYSQL_ROOT_HOST: "%"
|
|
MYSQL_ROOT_PASSWORD: mostest
|
|
MYSQL_PASSWORD: mostest
|
|
MYSQL_USER: mmuser
|
|
MYSQL_DATABASE: mattermost_test
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 3
|
|
volumes:
|
|
- ./docker/mysql.conf.d/source.cnf:/etc/mysql/conf.d/mysql.cnf
|
|
mysql-read-replica:
|
|
image: "mysql/mysql-server:8.0.32"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
ports:
|
|
- target: 3306
|
|
published: 3307
|
|
protocol: tcp
|
|
mode: host
|
|
environment:
|
|
MYSQL_ROOT_HOST: "%"
|
|
MYSQL_ROOT_PASSWORD: mostest
|
|
MYSQL_PASSWORD: mostest
|
|
MYSQL_USER: mmuser
|
|
MYSQL_DATABASE: mattermost_test
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 3
|
|
volumes:
|
|
- ./docker/mysql.conf.d/replica.cnf:/etc/mysql/conf.d/mysql.cnf
|
|
postgres:
|
|
image: "postgres:13"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
POSTGRES_USER: mmuser
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mostest}
|
|
POSTGRES_DB: mattermost_test
|
|
command: postgres -c 'config_file=/etc/postgresql/postgresql.conf'
|
|
volumes:
|
|
- "./docker/postgres.conf:/etc/postgresql/postgresql.conf"
|
|
- "./docker/postgres_node_database.sql:/docker-entrypoint-initdb.d/postgres_node_database.sql"
|
|
healthcheck:
|
|
test: [ "CMD", "pg_isready", "-h", "localhost" ]
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 3
|
|
minio:
|
|
image: "minio/minio:RELEASE.2024-06-22T05-26-45Z"
|
|
command: "server /data --console-address :9002"
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
MINIO_ROOT_USER: minioaccesskey
|
|
MINIO_ROOT_PASSWORD: miniosecretkey
|
|
MINIO_KMS_SECRET_KEY: my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=
|
|
inbucket:
|
|
image: "inbucket/inbucket:stable"
|
|
restart: always
|
|
environment:
|
|
INBUCKET_WEB_ADDR: "0.0.0.0:9001"
|
|
INBUCKET_POP3_ADDR: "0.0.0.0:10110"
|
|
INBUCKET_SMTP_ADDR: "0.0.0.0:10025"
|
|
networks:
|
|
- mm-test
|
|
openldap:
|
|
image: "osixia/openldap:1.4.0"
|
|
restart: always
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
LDAP_TLS_VERIFY_CLIENT: "never"
|
|
LDAP_ORGANISATION: "Mattermost Test"
|
|
LDAP_DOMAIN: "mm.test.com"
|
|
LDAP_ADMIN_PASSWORD: "mostest"
|
|
elasticsearch:
|
|
build:
|
|
context: .
|
|
dockerfile: ./Dockerfile.elasticsearch
|
|
args:
|
|
ELASTICSEARCH_VERSION: ${ELASTICSEARCH_VERSION:-9.0.0}
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
http.host: "0.0.0.0"
|
|
http.port: 9200
|
|
http.cors.enabled: "true"
|
|
http.cors.allow-origin: "http://localhost:1358,http://127.0.0.1:1358"
|
|
http.cors.allow-headers: "X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization"
|
|
http.cors.allow-credentials: "true"
|
|
transport.host: "127.0.0.1"
|
|
xpack.security.enabled: "false"
|
|
action.destructive_requires_name: "false"
|
|
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
|
opensearch:
|
|
build:
|
|
context: .
|
|
dockerfile: ./Dockerfile.opensearch
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
http.host: "0.0.0.0"
|
|
http.port: 9201
|
|
http.cors.enabled: "true"
|
|
http.cors.allow-origin: "http://localhost:1358,http://127.0.0.1:1358"
|
|
http.cors.allow-headers: "X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization"
|
|
http.cors.allow-credentials: "true"
|
|
transport.host: "127.0.0.1"
|
|
discovery.type: single-node
|
|
plugins.security.disabled: "true"
|
|
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
|
|
redis:
|
|
image: "redis:7.4.0"
|
|
networks:
|
|
- mm-test
|
|
dejavu:
|
|
image: "appbaseio/dejavu:3.4.2"
|
|
networks:
|
|
- mm-test
|
|
keycloak:
|
|
image: "quay.io/keycloak/keycloak:23.0.7"
|
|
restart: always
|
|
entrypoint: /opt/keycloak/bin/kc.sh start --import-realm
|
|
networks:
|
|
- mm-test
|
|
environment:
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
KC_HOSTNAME_STRICT: 'false'
|
|
KC_HOSTNAME_STRICT_HTTPS: 'false'
|
|
KC_HTTP_ENABLED: 'true'
|
|
volumes:
|
|
- "./docker/keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json"
|
|
prometheus:
|
|
image: "prom/prometheus:v2.46.0"
|
|
user: root
|
|
volumes:
|
|
- "./docker/prometheus.yml:/etc/prometheus/prometheus.yml"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
networks:
|
|
- mm-test
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
grafana:
|
|
image: "grafana/grafana:10.4.2"
|
|
volumes:
|
|
- "./docker/grafana/grafana.ini:/etc/grafana/grafana.ini"
|
|
- "./docker/grafana/provisioning:/etc/grafana/provisioning"
|
|
- "./docker/grafana/dashboards:/var/lib/grafana/dashboards"
|
|
networks:
|
|
- mm-test
|
|
loki:
|
|
image: "grafana/loki:3.0.0"
|
|
networks:
|
|
- mm-test
|
|
promtail:
|
|
image: "grafana/promtail:3.0.0"
|
|
volumes:
|
|
- "./docker/promtail/promtail-local-config.yaml:/etc/promtail/docker-config.yaml"
|
|
- "/var/lib/docker/containers:/var/lib/docker/containers:ro"
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
- "../logs:/logs"
|
|
command: -config.file=/etc/promtail/docker-config.yaml
|
|
networks:
|
|
- mm-test
|