--- # Keep in sync with CONTRIBUTING.md and configload.go. services: mongodb: build: context: ./build/deps dockerfile: mongo.Dockerfile command: --config /etc/mongod.conf restart: on-failure ulimits: nproc: 64000 nofile: soft: 64000 hard: 64000 ports: - 37001:37001 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./build/mongod.conf:/etc/mongod.conf mongodb-secured: build: context: ./build/deps dockerfile: mongo.Dockerfile command: --config /etc/mongod.conf restart: on-failure ulimits: nproc: 64000 nofile: soft: 64000 hard: 64000 ports: - 37002:37002 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - MONGO_INITDB_ROOT_USERNAME=username - MONGO_INITDB_ROOT_PASSWORD=password extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./build/mongod_secured.conf:/etc/mongod.conf ferretdb-postgresql: image: ghcr.io/ferretdb/ferretdb:1 restart: on-failure depends_on: ["postgres"] ports: - 27001:27001 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:27001 - FERRETDB_HANDLER=postgresql # use different database from ferretdb-postgresql-secured to avoid error - FERRETDB_POSTGRESQL_URL=postgres://postgres_user:postgres_password@postgres:5432/dance?sslmode=disable # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb-sqlite-replset: image: ghcr.io/ferretdb/ferretdb:1 restart: on-failure ports: - 27002:27002 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:27002 - FERRETDB_HANDLER=sqlite - FERRETDB_SQLITE_URL=file:/state/?_pragma=busy_timeout(20000) - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb-postgresql-secured: image: ghcr.io/ferretdb/ferretdb:1 restart: on-failure depends_on: ["postgres"] ports: - 27003:27003 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:27003 - FERRETDB_HANDLER=postgresql # use different database from ferretdb-postgresql to avoid error - FERRETDB_POSTGRESQL_URL=postgres://postgres_user:postgres_password@postgres:5432/postgres?sslmode=disable - FERRETDB_TEST_ENABLE_NEW_AUTH=true - FERRETDB_SETUP_USERNAME=username - FERRETDB_SETUP_PASSWORD=password - FERRETDB_SETUP_DATABASE=admin # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb-sqlite-replset-secured: image: ghcr.io/ferretdb/ferretdb:1 restart: on-failure ports: - 27004:27004 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:27004 - FERRETDB_HANDLER=sqlite - FERRETDB_SQLITE_URL=file:/state/?_pragma=busy_timeout(20000) - FERRETDB_TEST_ENABLE_NEW_AUTH=true - FERRETDB_SETUP_USERNAME=username - FERRETDB_SETUP_PASSWORD=password - FERRETDB_SETUP_DATABASE=admin - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2: # production build of the latest release image: ${FERRETDB_IMAGE:-ghcr.io/ferretdb/ferretdb:latest} restart: on-failure depends_on: ["postgres-documentdb"] ports: - 47001:47001 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47001 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb:5432/postgres?sslmode=disable - FERRETDB_AUTH=false # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2-secured: # production build of the latest release with authentication enabled image: ${FERRETDB_IMAGE:-ghcr.io/ferretdb/ferretdb:latest} restart: on-failure depends_on: ["postgres-documentdb"] ports: - 47002:47002 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47002 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb:5432/postgres?sslmode=disable - FERRETDB_AUTH=true # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2-dev: # development build of the latest release image: ghcr.io/ferretdb/ferretdb-dev:latest restart: on-failure depends_on: ["postgres-documentdb-dev"] ports: - 47003:47003 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47003 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb-dev:5432/postgres?sslmode=disable - FERRETDB_AUTH=false # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2-dev-secured: # development build of the latest release with authentication enabled image: ghcr.io/ferretdb/ferretdb-dev:latest restart: on-failure depends_on: ["postgres-documentdb-dev"] ports: - 47004:47004 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47004 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb-dev:5432/postgres?sslmode=disable - FERRETDB_AUTH=true # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2-branch: # production build of the `main` branch image: ghcr.io/ferretdb/ferretdb-dev:main-prod restart: on-failure depends_on: ["postgres-documentdb-branch"] ports: - 47005:47005 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47005 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb-branch:5432/postgres?sslmode=disable - FERRETDB_AUTH=false # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" ferretdb2-dev-branch: # development build of the `main` branch image: ghcr.io/ferretdb/ferretdb-dev:main restart: on-failure depends_on: ["postgres-documentdb-dev-branch"] ports: - 47006:47006 environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - FERRETDB_TELEMETRY=disabled - FERRETDB_LOG_LEVEL=error - FERRETDB_LISTEN_ADDR=:47006 - FERRETDB_POSTGRESQL_URL=postgres://username:password@postgres-documentdb-dev-branch:5432/postgres?sslmode=disable - FERRETDB_AUTH=false # - FERRETDB_REPL_SET_NAME=rs0 extra_hosts: - "host.docker.internal:host-gateway" # Different FerretDB v1 instances must use different POSTGRES_DB to avoid error such as # `relation "_ferretdb_database_metadata" already exists (SQLSTATE 42P07)`. postgres: image: postgres restart: on-failure environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=postgres_user - POSTGRES_PASSWORD=postgres_password - POSTGRES_DB=dance postgres-documentdb: # production build of the latest release image: ${POSTGRES_DOCUMENTDB_IMAGE:-ghcr.io/ferretdb/postgres-documentdb:17} restart: on-failure ports: - 5432:5432 environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres postgres-documentdb-dev: # development build of the latest release image: ghcr.io/ferretdb/postgres-documentdb-dev:17 restart: on-failure environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres postgres-documentdb-branch: # production build of the `ferretdb` branch image: ghcr.io/ferretdb/postgres-documentdb-dev:17-ferretdb-prod restart: on-failure environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres postgres-documentdb-dev-branch: # development build of the `ferretdb` branch image: ghcr.io/ferretdb/postgres-documentdb-dev:17-ferretdb restart: on-failure environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres mongosh: build: context: ./build/deps dockerfile: mongo.Dockerfile environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./dumps:/dumps legacy-mongo-shell: build: context: ./build/deps dockerfile: legacy-mongo-shell.Dockerfile environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu extra_hosts: - "host.docker.internal:host-gateway" working_dir: /projects/mongo volumes: - ./projects/mongo:/projects/mongo # for documentation textlint: build: context: ./build/deps dockerfile: ferretdb-textlint.Dockerfile volumes: - .:/workdir markdownlint: build: context: ./build/deps dockerfile: markdownlint.Dockerfile volumes: - .:/workdir