aboutsummaryrefslogtreecommitdiff
path: root/test/s3/sse/docker-compose.yml
blob: 82c05c03e4943b84042acad80a24c6f93c8c0e7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
services:
  # OpenBao server for KMS integration testing
  openbao:
    image: ghcr.io/openbao/openbao:latest
    ports:
      - "8200:8200"
    environment:
      - BAO_DEV_ROOT_TOKEN_ID=root-token-for-testing
      - BAO_DEV_LISTEN_ADDRESS=0.0.0.0:8200
      - BAO_LOCAL_CONFIG={"backend":{"file":{"path":"/bao/data"}},"default_lease_ttl":"168h","max_lease_ttl":"720h","ui":true,"disable_mlock":true}
    command:
      - bao
      - server
      - -dev
      - -dev-root-token-id=root-token-for-testing
      - -dev-listen-address=0.0.0.0:8200
    volumes:
      - openbao-data:/bao/data
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8200/v1/sys/health"]
      interval: 5s
      timeout: 3s
      retries: 5
      start_period: 10s
    networks:
      - seaweedfs-sse-test

  # SeaweedFS Master
  seaweedfs-master:
    image: chrislusf/seaweedfs:latest
    ports:
      - "9333:9333"
      - "19333:19333"
    command: 
      - master
      - -ip=seaweedfs-master
      - -port=9333
      - -port.grpc=19333
      - -volumeSizeLimitMB=50
      - -mdir=/data
    volumes:
      - seaweedfs-master-data:/data
    networks:
      - seaweedfs-sse-test

  # SeaweedFS Volume Server
  seaweedfs-volume:
    image: chrislusf/seaweedfs:latest
    ports:
      - "8080:8080"
    command:
      - volume
      - -master=seaweedfs-master:9333
      - -port=8080
      - -ip=seaweedfs-volume
      - -publicUrl=seaweedfs-volume:8080
      - -dir=/data
      - -max=100
    depends_on:
      - seaweedfs-master
    volumes:
      - seaweedfs-volume-data:/data
    networks:
      - seaweedfs-sse-test

  # SeaweedFS Filer with S3 API and KMS configuration
  seaweedfs-filer:
    image: chrislusf/seaweedfs:latest
    ports:
      - "8888:8888"  # Filer HTTP
      - "18888:18888" # Filer gRPC  
      - "8333:8333"  # S3 API
    command:
      - filer
      - -master=seaweedfs-master:9333
      - -port=8888
      - -port.grpc=18888
      - -ip=seaweedfs-filer
      - -s3
      - -s3.port=8333
      - -s3.config=/etc/seaweedfs/s3.json
    depends_on:
      - seaweedfs-master
      - seaweedfs-volume
      - openbao
    volumes:
      - ./s3_kms.json:/etc/seaweedfs/s3.json
      - seaweedfs-filer-data:/data
    networks:
      - seaweedfs-sse-test

volumes:
  openbao-data:
  seaweedfs-master-data:
  seaweedfs-volume-data:
  seaweedfs-filer-data:

networks:
  seaweedfs-sse-test:
    name: seaweedfs-sse-test