Files
s3/test/postgres/docker-compose.yml
zeekayandHanzo Dev af0f387bbe Remove weed and SeaweedFS naming from the tree
The binary is s3 and the product is Hanzo S3; the rest of the tree now
says so too.

- Environment: WEED_* and SEAWEEDFS_* are S3_*, no aliases. fla9's flag
  prefix is S3, matching viper's existing "s3" prefix, so the S3_S3_SSE_*
  names mini.go exports are the ones viper reads (WEED_S3_SSE_KEK was never
  seen once viper moved to "s3").
- Java and Hadoop: packages, fs.hanzofs.* keys and the hanzofs:// scheme
  under the hanzofs namespace the protos already declare; classes take a
  neutral Filer prefix and file names match them again (the earlier pass left
  Seas3*.java holding Seaweed* classes). Client, hdfs3, examples, s3copier,
  random_access and the Spark tests compile.
- Helm chart: helpers are hanzo.*, values live under global.s3; the chart
  renders and lints, which it did not before.
- Terraform: the s3.service.tftpl reference matches the file; 12/12 render
  tests pass. Config paths point at /etc/hanzo, which the binary reads.
- loadtest.pb.go regenerated from loadtest.proto.
- Upstream logo, sponsor images and unreferenced diagrams removed from note/.

Kept: NOTICE attribution, LICENSE, the erasure-coding fixture
s3/storage/erasure_coding/1.dat (test bytes), and unmaintained/ and
third_party/ (vendored). No on-disk format, wire protocol or metadata key
changed.

Co-authored-by: Hanzo Dev <[email protected]>
2026-10-02 08:06:48 -07:00

138 lines
3.4 KiB
YAML

services:
# Hanzo All-in-One Server (Custom Build with PostgreSQL support)
hanzo:
build:
context: ../.. # Build from project root
dockerfile: test/postgres/Dockerfile.s3
container_name: hanzo-server
ports:
- "9333:9333" # Master port
- "8888:8888" # Filer port
- "8333:8333" # S3 port
- "8085:8085" # Volume port
- "9533:9533" # Metrics port
- "26777:16777" # MQ Agent port (mapped to avoid conflicts)
- "27777:17777" # MQ Broker port (mapped to avoid conflicts)
volumes:
- hanzo_data:/data
command:
- ./s3
- server
- -dir=/data
- -master.volumeSizeLimitMB=50
- -master.port=9333
- -metricsPort=9533
- -volume.max=0
- -volume.port=8085
- -volume.preStopSeconds=1
- -filer=true
- -filer.port=8888
- -s3=true
- -s3.port=8333
- -webdav=false
- -mq.broker=true
- -mq.agent=true
- -ip=hanzo
networks:
- hanzo-net
healthcheck:
test: ["CMD", "curl", "--fail", "--silent", "http://hanzo:9333/cluster/status"]
interval: 10s
timeout: 5s
retries: 5
start_period: 60s
# Database Server (PostgreSQL Wire Protocol Compatible)
postgres-server:
build:
context: ../.. # Build from project root
dockerfile: test/postgres/Dockerfile.s3
container_name: postgres-server
ports:
- "5432:5432" # PostgreSQL port
depends_on:
hanzo:
condition: service_healthy
command: >
./s3-db
-host=0.0.0.0
-port=5432
-master=hanzo:9333
-auth=trust
-database=default
-max-connections=50
-idle-timeout=30m
networks:
- hanzo-net
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "5432"]
interval: 5s
timeout: 3s
retries: 3
start_period: 10s
# MQ Data Producer - Creates test topics and data
mq-producer:
build:
context: ../.. # Build from project root
dockerfile: test/postgres/Dockerfile.producer
container_name: mq-producer
depends_on:
hanzo:
condition: service_healthy
environment:
- S3_MASTER=hanzo:9333
- S3_FILER=hanzo:8888
networks:
- hanzo-net
restart: "no" # Run once to create data
# PostgreSQL Test Client
postgres-client:
build:
context: ../.. # Build from project root
dockerfile: test/postgres/Dockerfile.client
container_name: postgres-client
depends_on:
postgres-server:
condition: service_healthy
environment:
- POSTGRES_HOST=postgres-server
- POSTGRES_PORT=5432
- POSTGRES_USER=hanzo
- POSTGRES_DB=logs
networks:
- hanzo-net
profiles:
- client # Only start when explicitly requested
# PostgreSQL CLI for manual testing
psql-cli:
image: postgres:15-alpine
container_name: psql-cli
depends_on:
postgres-server:
condition: service_healthy
environment:
- PGHOST=postgres-server
- PGPORT=5432
- PGUSER=hanzo
- PGDATABASE=default
networks:
- hanzo-net
profiles:
- cli # Only start when explicitly requested
command: >
sh -c "
echo 'Connecting to PostgreSQL server...';
psql -c 'SELECT version();'
"
volumes:
hanzo_data:
driver: local
networks:
hanzo-net:
driver: bridge