version: '3.9' volumes: init-db: data-db: services: mongodb: image: mongo container_name: mongodb restart: always volumes: - ./init-db:/docker-entrypoint-initdb.d - ./data-db:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: mongoadmin MONGO_INITDB_DATABASE: django_mongodb_docker ports: - 27017:27017 mongo-express: image: mongo-express container_name: mongo-express restart: always ports: - 8081:8081 environment: ME_CONFIG_MONGODB_ADMINUSERNAME: root ME_CONFIG_MONGODB_ADMINPASSWORD: mongoadmin ME_CONFIG_BASICAUTH_USERNAME: admin # mongo-express web username ME_CONFIG_BASICAUTH_PASSWORD: expressadmin # mongo-express web password ME_CONFIG_MONGODB_SERVER: mongodb # db hostname links: - mongodb web: image: app # build: . container_name: web restart: always command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - 8000:8000 links: - mongodb depends_on: - migration migration: build: . image: app command: python manage.py migrate volumes: - .:/code links: - mongodb depends_on: - make_migrations make_migrations: build: . image: app command: python manage.py makemigrations volumes: - .:/code links: - mongodb depends_on: - mongodb