| # Comments are provided throughout this file to help you get started. | |
| # If you need more help, visit the Docker Compose reference guide at | |
| # https://docs.docker.com/go/compose-spec-reference/ | |
| # Here the instructions define your application as a service called "server". | |
| # This service is built from the Dockerfile in the current directory. | |
| # You can add other services your application may depend on here, such as a | |
| # database or a cache. For examples, see the Awesome Compose repository: | |
| # https://github.com/docker/awesome-compose | |
| #services: | |
| # server: | |
| # build: | |
| # context: . | |
| # ports: | |
| # - 8000:8000 | |
| version: '3.8' | |
| services: | |
| mongodb: | |
| image: mongo:6.0 | |
| ports: | |
| - "27017:27017" | |
| environment: | |
| - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} | |
| - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} | |
| healthcheck: | |
| test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] | |
| interval: 5s | |
| timeout: 3s | |
| retries: 5 | |
| volumes: | |
| - mongodb_data:/data/db | |
| app: | |
| image: your-app-image:latest | |
| env_file: | |
| - .env | |
| depends_on: | |
| mongodb: | |
| condition: service_healthy | |
| ports: | |
| - "3000:3000" | |
| environment: | |
| - MONGO_URI=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@mongodb:27017/ | |
| - MONGO_DB_NAME=${MONGO_DB_NAME} | |
| volumes: | |
| mongodb_data: | |
| # The commented out section below is an example of how to define a PostgreSQL | |
| # database that your application can use. `depends_on` tells Docker Compose to | |
| # start the database before your application. The `db-data` volume persists the | |
| # database data between container restarts. The `db-password` secret is used | |
| # to set the database password. You must create `db/password.txt` and add | |
| # a password of your choosing to it before running `docker compose up`. | |
| # depends_on: | |
| # db: | |
| # condition: service_healthy | |
| # db: | |
| # image: postgres | |
| # restart: always | |
| # user: postgres | |
| # secrets: | |
| # - db-password | |
| # volumes: | |
| # - db-data:/var/lib/postgresql/data | |
| # environment: | |
| # - POSTGRES_DB=example | |
| # - POSTGRES_PASSWORD_FILE=/run/secrets/db-password | |
| # expose: | |
| # - 5432 | |
| # healthcheck: | |
| # test: [ "CMD", "pg_isready" ] | |
| # interval: 10s | |
| # timeout: 5s | |
| # retries: 5 | |
| # volumes: | |
| # db-data: | |
| # secrets: | |
| # db-password: | |
| # file: db/password.txt | |