docker-compose.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. version: '3.8'
  2. services:
  3. # OpenBao server for KMS integration testing
  4. openbao:
  5. image: ghcr.io/openbao/openbao:latest
  6. ports:
  7. - "8200:8200"
  8. environment:
  9. - BAO_DEV_ROOT_TOKEN_ID=root-token-for-testing
  10. - BAO_DEV_LISTEN_ADDRESS=0.0.0.0:8200
  11. - BAO_LOCAL_CONFIG={"backend":{"file":{"path":"/bao/data"}},"default_lease_ttl":"168h","max_lease_ttl":"720h","ui":true,"disable_mlock":true}
  12. command:
  13. - bao
  14. - server
  15. - -dev
  16. - -dev-root-token-id=root-token-for-testing
  17. - -dev-listen-address=0.0.0.0:8200
  18. volumes:
  19. - openbao-data:/bao/data
  20. healthcheck:
  21. test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8200/v1/sys/health"]
  22. interval: 5s
  23. timeout: 3s
  24. retries: 5
  25. start_period: 10s
  26. networks:
  27. - seaweedfs-sse-test
  28. # SeaweedFS Master
  29. seaweedfs-master:
  30. image: chrislusf/seaweedfs:latest
  31. ports:
  32. - "9333:9333"
  33. - "19333:19333"
  34. command:
  35. - master
  36. - -ip=seaweedfs-master
  37. - -port=9333
  38. - -port.grpc=19333
  39. - -volumeSizeLimitMB=50
  40. - -mdir=/data
  41. volumes:
  42. - seaweedfs-master-data:/data
  43. networks:
  44. - seaweedfs-sse-test
  45. # SeaweedFS Volume Server
  46. seaweedfs-volume:
  47. image: chrislusf/seaweedfs:latest
  48. ports:
  49. - "8080:8080"
  50. command:
  51. - volume
  52. - -mserver=seaweedfs-master:9333
  53. - -port=8080
  54. - -ip=seaweedfs-volume
  55. - -publicUrl=seaweedfs-volume:8080
  56. - -dir=/data
  57. - -max=100
  58. depends_on:
  59. - seaweedfs-master
  60. volumes:
  61. - seaweedfs-volume-data:/data
  62. networks:
  63. - seaweedfs-sse-test
  64. # SeaweedFS Filer with S3 API and KMS configuration
  65. seaweedfs-filer:
  66. image: chrislusf/seaweedfs:latest
  67. ports:
  68. - "8888:8888" # Filer HTTP
  69. - "18888:18888" # Filer gRPC
  70. - "8333:8333" # S3 API
  71. command:
  72. - filer
  73. - -master=seaweedfs-master:9333
  74. - -port=8888
  75. - -port.grpc=18888
  76. - -ip=seaweedfs-filer
  77. - -s3
  78. - -s3.port=8333
  79. - -s3.config=/etc/seaweedfs/s3.json
  80. depends_on:
  81. - seaweedfs-master
  82. - seaweedfs-volume
  83. - openbao
  84. volumes:
  85. - ./s3_kms.json:/etc/seaweedfs/s3.json
  86. - seaweedfs-filer-data:/data
  87. networks:
  88. - seaweedfs-sse-test
  89. volumes:
  90. openbao-data:
  91. seaweedfs-master-data:
  92. seaweedfs-volume-data:
  93. seaweedfs-filer-data:
  94. networks:
  95. seaweedfs-sse-test:
  96. name: seaweedfs-sse-test