# Copyright 2025 PingCAP, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

version: '2.3'

services:
  minio0:
    image: ${MINIO_IMAGE:-hub.pingcap.net/test-infra/minio:latest}
    security_opt:
      - seccomp:unconfined
    volumes:
      - ./data/minio:/data
      - ./log/minio:/log
    # Using command can not set the init bucket and logging to file.
    #command: server /data --console-address ':9001' > /log/minio.log 2>&1
    # Use entrypoint instead, create bucket "tiflash-test" on minio at startup
    entrypoint: sh -c 'mkdir -p /data/tiflash-test && minio server /data --console-address ":9001" > /log/minio.log 2>&1'
  pd0:
    image: ${PD_IMAGE:-us-docker.pkg.dev/pingcap-testing-account/hub/tikv/pd/image:master-next-gen}
    security_opt:
      - seccomp:unconfined
    volumes:
      - ./nextgen-config/pd.toml:/pd.toml:ro
      - ./data/pd0:/data
      - ./log/pd0:/log
    command: --name=pd0 --client-urls=http://0.0.0.0:2379 --peer-urls=http://0.0.0.0:2380 --advertise-client-urls=http://pd0:2379 --advertise-peer-urls=http://pd0:2380 --initial-cluster=pd0=http://pd0:2380 --config=/pd.toml --data-dir=/data --log-file=/log/pd.log
    restart: on-failure
  tikv0:
    image: ${TIKV_IMAGE:-us-docker.pkg.dev/pingcap-testing-account/hub/tikv/tikv/image:dedicated-next-gen}
    security_opt:
      - seccomp:unconfined
    volumes:
      - ./nextgen-config/tikv.toml:/tikv.toml:ro
      - ./data/tikv0:/data
      - ./log/tikv0:/log
    command: --addr=0.0.0.0:20160 --advertise-addr=tikv0:20160 --status-addr=0.0.0.0:20180 --advertise-status-addr=tikv0:20180 --pd=pd0:2379 --config=/tikv.toml --data-dir=/data --log-file=/log/tikv.log
    depends_on:
      - "pd0"
      - "minio0"
    restart: on-failure
  tidb0:
    image: ${TIDB_IMAGE:-us-docker.pkg.dev/pingcap-testing-account/hub/pingcap/tidb/images/tidb-server:master-next-gen}
    security_opt:
      - seccomp:unconfined
    volumes:
      - ./nextgen-config/tidb.toml:/tidb.toml:ro
      - ./log/tidb0:/log
    command: --store=tikv --path=pd0:2379 --config=/tidb.toml --log-file=/log/tidb.log --advertise-address=tidb0 --tidb-service-scope dxf_service
    depends_on:
      - "tikv0"
    restart: on-failure