services:
  web:
    container_name: web-dw
    build:
      context: /home/dw/dw/etc/docker/web
      dockerfile: Dockerfile
    ports:
      - "3237:80"
    volumes:
      - /home/dw/dw/etc/docker/web/files/config-private.pl:/dw/etc/config-private.pl
      - /home/dw/dw/etc/docker/web/files/config-local.pl:/dw/etc/config-local.pl
      - /home/dw/dw/etc/docker/web/files/config.pl:/dw/etc/config.pl
      - /home/dw/dw/etc/texttool.pl:/dw/etc/texttool.pl
      - /home/dw/dw/etc/build-static.sh:/dw/etc/build-static.sh
      - /home/dw/dw/cgi-bin/DW/TaskQueue.pm:/dw/cgi-bin/DW/TaskQueue.pm
      - /home/dw/dw/var/taskqueue:/dw/var/taskqueue:rw
      - /home/dw/dw/cgi-bin/DW/TaskQueue/LocalDisk.pm:/dw/cgi-bin/DW/TaskQueue/LocalDisk.pm
      - /home/dw/dw/blobimages:/dw/var/blobimages:rw
      - /home/dw/dw/bin/worker-manager:/dw/bin/worker-manager
      - /home/dw/dw/etc/docker/worker/files/workers.conf:/dw/etc/workers.conf
      - /home/dw/dw/htdocs/stc/gradation/gradation.css:/dw/htdocs/stc/gradation/gradation.css:rw
      - /home/dw/dw/htdocs/scss/skins/gradation/_gradation-base.scss:/dw/htdocs/scss/skins/gradation/_gradation-base.scss:rw
      - /home/dw/dw/cgi-bin/DW/SiteScheme.pm:/dw/cgi-bin/DW/SiteScheme.pm:rw
      - /home/dw/dw/cgi-bin/DW/SiteScheme.pm:/dw/ext/dw-nonfree/cgi-bin/DW/Hooks/SiteScheme.pm:rw
      - /home/dw/dw/htdocs/img/profile_icons:/dw/htdocs/img/profile_icons
      - /home/dw/dw/bin/upgrading/en.dat:/dw/bin/upgrading/en.dat:rw
      - /home/dw/dw/bin/upgrading/base-data.sql:/dw/bin/upgrading/base-data.sql:rw
      - /home/dw/dw/bin/upgrading/proplists.dat:/dw/bin/upgrading/proplists.dat:rw
#     - /home/dw/dw/cgi-bin/DW/Controller/Index.pm:/dw/ext/dw-nonfree/cgi-bin/DW/Controller/Dreamwidth/Index.pm
      - /home/dw/dw/views/index-free.tt:/dw/views/index-free.tt
      - /home/dw/dw/htdocs/img/external:/dw/htdocs/img/external
      - /home/dw/dw/cgi-bin/DW/BlobStore/S3.pm:/dw/cgi-bin/DW/BlobStore/S3.pm
      - /home/dw/dw/garage/data:/mnt/data
      - /home/dw/dw/etc/docker/web/config/etc/apache2/envvars:/etc/apache2/envvars
    env_file: /home/dw/dw/etc/docker/web.env
    depends_on:
       mysql:
         condition: service_healthy

  worker:
    container_name: worker-dw
    build:
      context: /home/dw/dw/etc/docker/worker
      dockerfile: Dockerfile
    volumes:
      - /home/dw/dw/etc/docker/web/files/config-private.pl:/dw/etc/config-private.pl
      - /home/dw/dw/etc/docker/web/files/config-local.pl:/dw/etc/config-local.pl
      - /home/dw/dw/etc/docker/web/files/config.pl:/dw/etc/config.pl
      - /home/dw/dw/bin/worker-manager:/dw/bin/worker-manager
      - /home/dw/dw/etc/docker/worker/files/workers.conf:/dw/etc/workers.conf
      - /home/dw/dw/cgi-bin/DW/TaskQueue.pm:/dw/cgi-bin/DW/TaskQueue.pm
      - /home/dw/dw/cgi-bin/DW/TaskQueue/LocalDisk.pm:/dw/cgi-bin/DW/TaskQueue/LocalDisk.pm
      - /home/dw/dw/var/taskqueue:/dw/var/taskqueue:rw
    command: bash -c "/dw/bin/ddlockd"
    depends_on:
      mysql:
        condition: service_healthy

  #lock:
   #container_name: lock-dw
  # build:
   #   context: /home/dw/dw/etc/docker/worker
   #   dockerfile: Dockerfile
   # image: ghcr.io/dreamwidth/worker
   # environment:
   #    - PERL5LIB=/dw/extlib/lib/perl5
   # command: bash -c "/dw/bin/ddlockd"
   # ports:
    #  - "7006:7006"
  lock:
    container_name: lock-dw
#    build:
    #context: /home/dw/dw/etc/docker/worker
     # dockerfile: Dockerfile
    image: ghcr.io/dreamwidth/worker
    environment:
      - PERL5LIB=/dw/extlib/lib/perl5
    command: bash -c "/dw/bin/ddlockd"
    ports:
      - "7006:7006"

  memcached:
    container_name: memcached-dw
    image: memcached:latest
    ports:
      - "11311:11311"
    command:
      - --conn-limit=1024
      - --memory-limit=64
      - --threads=4
  garage:
    image: dxflrs/garage:v2.2.0
    container_name: garage
    network_mode: "host"
#    env_file: env.env
    volumes:
      - ./garage.toml:/etc/garage.toml
      - ./meta:/var/lib/garage/meta
      - ./data:/var/lib/garage/data

#  webui:
 #   image: khairul169/garage-webui:latest
  #  container_name: garage-webui
   # restart: unless-stopped
    #volumes:
    #  - ./garage.toml:/etc/garage.toml:ro
    #environment:
    #  API_BASE_URL: "http://127.0.0.1:3903"
    #  S3_ENDPOINT_URL: "http://127.0.0.1:3900"
    #network_mode: "host"
  
#garagehq:
 #   container_name: garagehq
  #  image: dxflrs/garage:v2.2.0
   # environment:
    #  -
    #ports:
     # - 3900:3900 # S3 API port
      #- 3901:3901 # RPC port (internal communication)
      # 3903:3903 # Admin API port
    #volumes:
     # - /home/dw/dw/etc/docker/garagehq/data:/mnt/data       
      #- /home/dw/dw/etc/docker/garagehq/blobimages:/dw/var/blobimages:rw
      
   
  mysql:
    container_name: dw-mysql
    build:
      context: /home/dw/dw/etc/docker/mysql-build
      dockerfile: Dockerfile
    env_file: .env
    command: --sql_mode=""
    volumes:
      - ./mysql25:/var/lib/mysql
      - /home/dw/dw/etc/docker/cnf/my.cnf/my.cnf:/etc/my.cnf:ro
    ports:
      - "33061:33061"
    healthcheck:
      test: ["CMD-SHELL", "ls" ]
      start_period: 10s
      interval: 5s
      timeout: 5s
      retries: 3
