services:
  rustfs-decommission-latest:
    image: ${RUSTFS_DOCKER_IMAGE:-rustfs-local:decommission-latest}
    entrypoint:
      - /bin/sh
      - -lc
      - |
          set -eu
          mkdir -p \
            /data/pool0/disk1 /data/pool0/disk2 /data/pool0/disk3 /data/pool0/disk4 \
            /data/pool1/disk1 /data/pool1/disk2 /data/pool1/disk3 /data/pool1/disk4 \
            /logs
          exec /usr/bin/rustfs '/data/pool0/disk{1...4}' '/data/pool1/disk{1...4}'
    ports:
      - "9100:9000"
      - "9101:9001"
    environment:
      RUSTFS_VOLUMES: "/data/pool0/disk{1...4} /data/pool1/disk{1...4}"
      RUSTFS_ADDRESS: "0.0.0.0:9000"
      RUSTFS_CONSOLE_ADDRESS: "0.0.0.0:9001"
      RUSTFS_CONSOLE_ENABLE: "true"
      RUSTFS_CORS_ALLOWED_ORIGINS: "*"
      RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS: "*"
      RUSTFS_ACCESS_KEY: "rustfsadmin"
      RUSTFS_SECRET_KEY: "rustfsadmin"
      RUSTFS_OBS_LOGGER_LEVEL: "info"
      RUSTFS_OBS_LOG_DIRECTORY: "/logs"
      RUST_LOG: "info,rustfs=debug,rustfs_ecstore=debug"
    volumes:
      - ./deploy/data/decommission:/data
      - ./deploy/logs/decommission:/logs
    healthcheck:
      test:
        [
          "CMD",
          "sh",
          "-c",
          "curl -f http://127.0.0.1:9000/health && curl -f http://127.0.0.1:9001/rustfs/console/health"
        ]
      interval: 20s
      timeout: 10s
      retries: 6
      start_period: 300s
    restart: unless-stopped
    networks:
      - rustfs-decommission-network

networks:
  rustfs-decommission-network:
