---

version: "2.4"
services:
  storage01:
    image: ${NODE_IMAGE}:${NODE_VERSION}
    domainname: ${LOCAL_DOMAIN}
    hostname: s01
    container_name: s01
    restart: on-failure
    networks:
      storage_int:
      internet:
        ipv4_address: ${IPV4_PREFIX}.71
    volumes:
      - ./01.key:/01.key
      - ./../../vendor/hosts:/etc/hosts
      - storage_s01:/storage
      - ./../../vendor/neofs-cli:/neofs-cli
      - ./healthcheck.sh:/healthcheck.sh
      - ./s04tls.crt:/etc/ssl/certs/s04tls.crt
    stop_signal: SIGKILL
    env_file: [ ".env", ".storage.env" ]
    environment:
      - NEOFS_NODE_KEY=/01.key
      - NEOFS_NODE_ADDRESSES=s01.${LOCAL_DOMAIN}:8080
      - NEOFS_GRPC_0_ENDPOINT=s01.${LOCAL_DOMAIN}:8080
      - NEOFS_CONTROL_GRPC_ENDPOINT=s01.${LOCAL_DOMAIN}:8081
      - NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:RU MOW
      - NEOFS_NODE_ATTRIBUTE_1=Price:22
    healthcheck:
      test: ["CMD-SHELL", "/healthcheck.sh"]
      interval: 2s
      timeout: 1s
      retries: 5
      start_period: 10s

  storage02:
    image: ${NODE_IMAGE}:${NODE_VERSION}
    domainname: ${LOCAL_DOMAIN}
    hostname: s02
    container_name: s02
    restart: on-failure
    networks:
      storage_int:
      internet:
        ipv4_address: ${IPV4_PREFIX}.72
    volumes:
      - ./02.key:/02.key
      - ./../../vendor/hosts:/etc/hosts
      - storage_s02:/storage
      - ./../../vendor/neofs-cli:/neofs-cli
      - ./healthcheck.sh:/healthcheck.sh
      - ./s04tls.crt:/etc/ssl/certs/s04tls.crt
    stop_signal: SIGKILL
    env_file: [ ".env", ".storage.env" ]
    environment:
      - NEOFS_NODE_KEY=/02.key
      - NEOFS_NODE_ADDRESSES=s02.${LOCAL_DOMAIN}:8080
      - NEOFS_GRPC_0_ENDPOINT=s02.${LOCAL_DOMAIN}:8080
      - NEOFS_CONTROL_GRPC_ENDPOINT=s02.${LOCAL_DOMAIN}:8081
      - NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:RU LED
      - NEOFS_NODE_ATTRIBUTE_1=Price:33
    healthcheck:
      test: ["CMD-SHELL", "/healthcheck.sh"]
      interval: 2s
      timeout: 1s
      retries: 5
      start_period: 10s

  storage03:
    image: ${NODE_IMAGE}:${NODE_VERSION}
    domainname: ${LOCAL_DOMAIN}
    hostname: s03
    container_name: s03
    restart: on-failure
    networks:
      storage_int:
      internet:
        ipv4_address: ${IPV4_PREFIX}.73
    volumes:
      - ./03.key:/03.key
      - ./../../vendor/hosts:/etc/hosts
      - storage_s03:/storage
      - ./../../vendor/neofs-cli:/neofs-cli
      - ./healthcheck.sh:/healthcheck.sh
      - ./s04tls.crt:/etc/ssl/certs/s04tls.crt
    stop_signal: SIGKILL
    env_file: [ ".env", ".storage.env" ]
    environment:
      - NEOFS_NODE_KEY=/03.key
      - NEOFS_NODE_ADDRESSES=s03.${LOCAL_DOMAIN}:8080
      - NEOFS_GRPC_0_ENDPOINT=s03.${LOCAL_DOMAIN}:8080
      - NEOFS_CONTROL_GRPC_ENDPOINT=s03.${LOCAL_DOMAIN}:8081
      - NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:SE STO
      - NEOFS_NODE_ATTRIBUTE_1=Price:11
    healthcheck:
      test: ["CMD-SHELL", "/healthcheck.sh"]
      interval: 2s
      timeout: 1s
      retries: 5
      start_period: 10s

  storage04:
    image: ${NODE_IMAGE}:${NODE_VERSION}
    domainname: ${LOCAL_DOMAIN}
    hostname: s04
    container_name: s04
    restart: on-failure
    networks:
      storage_int:
      internet:
        ipv4_address: ${IPV4_PREFIX}.74
    volumes:
      - ./04.key:/04.key
      - ./../../vendor/hosts:/etc/hosts
      - storage_s04:/storage
      - ./../../vendor/neofs-cli:/neofs-cli
      - ./healthcheck.sh:/healthcheck.sh
      - ./s04tls.crt:/tls.crt
      - ./s04tls.key:/tls.key
    stop_signal: SIGKILL
    env_file: [ ".env", ".storage.env" ]
    environment:
      - NEOFS_NODE_KEY=/04.key
      - NEOFS_NODE_ADDRESSES=s04.${LOCAL_DOMAIN}:8080 grpcs://s04.${LOCAL_DOMAIN}:8082
      - NEOFS_CONTROL_GRPC_ENDPOINT=s04.${LOCAL_DOMAIN}:8081
      - NEOFS_GRPC_NUM=2
      - NEOFS_GRPC_0_ENDPOINT=s04.${LOCAL_DOMAIN}:8080
      - NEOFS_GRPC_1_ENDPOINT=s04.${LOCAL_DOMAIN}:8082
      - NEOFS_GRPC_1_TLS_ENABLED=true
      - NEOFS_GRPC_1_TLS_CERTIFICATE=/tls.crt
      - NEOFS_GRPC_1_TLS_KEY=/tls.key
      - NEOFS_NODE_ATTRIBUTE_0=UN-LOCODE:FI HEL
      - NEOFS_NODE_ATTRIBUTE_1=Price:44
    healthcheck:
      test: ["CMD-SHELL", "/healthcheck.sh"]
      interval: 2s
      timeout: 1s
      retries: 5
      start_period: 10s

  sn-healthcheck:
    container_name: sn-healthcheck
    image: debian:10
    depends_on:
      storage01:
        condition: service_healthy
      storage02:
        condition: service_healthy
      storage03:
        condition: service_healthy
      storage04:
        condition: service_healthy

volumes:
  storage_s01:
  storage_s02:
  storage_s03:
  storage_s04:

networks:
  storage_int:
  internet:
    external:
      name: basenet_internet