--- # This file is used for the development of FerretDB, not for actually running it. version: "3.8" services: postgres: build: context: ./build/deps dockerfile: postgres.Dockerfile container_name: ferretdb_postgres command: postgres -c 'max_connections=200' ports: - 5432:5432 extra_hosts: - "host.docker.internal:host-gateway" environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_HOST_AUTH_METHOD=trust - POSTGRES_DB=ferretdb postgres_secured: build: context: ./build/deps dockerfile: postgres.Dockerfile container_name: ferretdb_postgres_secured command: postgres -c 'max_connections=200' ports: - 5433:5432 extra_hosts: - "host.docker.internal:host-gateway" environment: # UTC−03:30/−02:30. Set to catch timezone problems. - TZ=America/St_Johns - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=ferretdb tigris: build: context: ./build/deps dockerfile: ${TIGRIS_DOCKERFILE:-tigris}.Dockerfile container_name: ferretdb_tigris ports: - 8081:8081 environment: - TIGRIS_SERVER_LOG_LEVEL=info cockroach: build: context: ./build/deps dockerfile: cockroach.Dockerfile container_name: ferretdb_cockroach command: start-single-node --insecure ports: - 26257:26257 environment: - COCKROACH_USER=username - COCKROACH_PASSWORD=password - COCKROACH_DATABASE=ferretdb mongodb: build: context: ./build/deps dockerfile: ${MONGO_DOCKERFILE:-mongo6}.Dockerfile container_name: ferretdb_mongodb command: --config /etc/mongod.conf ports: - 37017:27017 extra_hosts: - "host.docker.internal:host-gateway" environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu volumes: - ./build/certs:/etc/certs - ./build/mongod.conf:/etc/mongod.conf mongodb_secured: build: context: ./build/deps dockerfile: ${MONGO_DOCKERFILE:-mongo6}.Dockerfile container_name: ferretdb_mongodb_secured command: --config /etc/mongod.conf ports: - 37018:27017 extra_hosts: - "host.docker.internal:host-gateway" environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu - MONGO_INITDB_ROOT_USERNAME=username - MONGO_INITDB_ROOT_PASSWORD=password volumes: - ./build/certs:/etc/certs - ./build/mongod_secured.conf:/etc/mongod.conf # for test scripts legacy-mongo-shell: build: context: ./build/deps dockerfile: legacy-mongo-shell.Dockerfile container_name: ferretdb_legacy-mongo-shell extra_hosts: - "host.docker.internal:host-gateway" environment: # Always UTC+05:45. Set to catch timezone problems. - TZ=Asia/Kathmandu volumes: - ./build/certs:/etc/certs - ./build/legacy-mongo-shell/test.js:/legacy-mongo-shell/test.js trivy: build: context: ./build/deps dockerfile: trivy.Dockerfile container_name: ferretdb_trivy volumes: - .:/workdir # for testing .deb and .rpm packages ubuntu: build: context: ./build/deps dockerfile: ubuntu2204.Dockerfile container_name: ferretdb_ubuntu volumes: - ./build/deb:/deb ubi: build: context: ./build/deps dockerfile: ubi9.Dockerfile container_name: ferretdb_ubi volumes: - ./build/rpm:/rpm # for documentation textlint: build: context: ./build/deps dockerfile: ferretdb-textlint.Dockerfile container_name: ferretdb_ferretdb-textlint volumes: - .:/workdir markdownlint: build: context: ./build/deps dockerfile: markdownlint.Dockerfile container_name: ferretdb_markdownlint volumes: - .:/workdir wrangler: build: context: ./build/deps dockerfile: ferretdb-wrangler.Dockerfile container_name: ferretdb_ferretdb-wrangler ports: - 8976:8976 # simplifies authentication for testing environment: - CLOUDFLARE_ACCOUNT_ID - CLOUDFLARE_API_TOKEN - WRANGLER_SEND_METRICS=false volumes: - .:/workdir # mount everything for wrangler to pick up branch name, commit hash, etc from git docusaurus-docs: build: context: ./build/deps dockerfile: docusaurus-docs.Dockerfile container_name: ferretdb_docusaurus-docs ports: - 3000:3000 volumes: - ./website/docs:/workdir/docusaurus-docs/docs:ro - ./website/static:/workdir/docusaurus-docs/static:ro - ./website/src/components:/workdir/docusaurus-docs/src/components:ro - ./website/src/css:/workdir/docusaurus-docs/src/css:ro # We copy intro.js to redirect from /intro (old default docs page) to the root docs page. - ./website/src/pages/intro.js:/workdir/docusaurus-docs/src/pages/intro.js - ./website/babel.config.js:/workdir/docusaurus-docs/babel.config.js:ro - ./website/docusaurus.config.js:/workdir/docusaurus-docs/docusaurus.config.js:ro - ./website/sidebars.js:/workdir/docusaurus-docs/sidebars.js:ro - ./website/build:/workdir/docusaurus-docs/build:rw docusaurus-blog: build: context: ./build/deps dockerfile: docusaurus-docs.Dockerfile container_name: ferretdb_docusaurus-blog ports: - 3001:3001 volumes: - ./website/blog:/workdir/docusaurus-docs/blog:ro - ./website/static:/workdir/docusaurus-docs/static:ro - ./website/src/components:/workdir/docusaurus-docs/src/components:ro - ./website/src/css:/workdir/docusaurus-docs/src/css:ro - ./website/babel.config.js:/workdir/docusaurus-docs/babel.config.js:ro - ./website/docusaurus.config-blog.js:/workdir/docusaurus-docs/docusaurus.config.js:ro - ./website/sidebars.js:/workdir/docusaurus-docs/sidebars.js:ro - ./website/build:/workdir/docusaurus-docs/build:rw