version: '2.1'

services:
  root_db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: root_db
      MYSQL_USER: noco
      MYSQL_PASSWORD: password
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      timeout: 20s
      retries: 10
    networks:
      - default

  nocodb:
    depends_on:
      root_db:
        condition: service_healthy
    image: nocodb/nocodb:latest
    restart: always
    volumes:
      - nc_data:/usr/app/data
    environment:
      NC_DB: "mysql2://root_db:3306?u=noco&p=password&d=root_db"
    networks:
      - default
      - nginxproxy

  nginx-proxy-manager:
    image: jlesage/nginx-proxy-manager
    restart: always
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Amsterdam
    ports:
      - "8181:8181"
      - "80:8080"
      - "443:4443"
    volumes:
      - nginx-proxy-manager:/config:rw
    networks:
      - nginxproxy

volumes:
  nginx-proxy-manager: {}
  db_data: {}
  nc_data: {}

networks:
  default:
  nginxproxy: