docker-compose.yml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. # HashiCorp Vault for compatibility testing (alternative to OpenBao)
  27. vault:
  28. image: vault:latest
  29. ports:
  30. - "8201:8200"
  31. environment:
  32. - VAULT_DEV_ROOT_TOKEN_ID=root-token-for-testing
  33. - VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200
  34. command:
  35. - vault
  36. - server
  37. - -dev
  38. - -dev-root-token-id=root-token-for-testing
  39. - -dev-listen-address=0.0.0.0:8200
  40. cap_add:
  41. - IPC_LOCK
  42. healthcheck:
  43. test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8200/v1/sys/health"]
  44. interval: 5s
  45. timeout: 3s
  46. retries: 5
  47. start_period: 10s
  48. # SeaweedFS components for end-to-end testing
  49. seaweedfs-master:
  50. image: chrislusf/seaweedfs:latest
  51. ports:
  52. - "9333:9333"
  53. command:
  54. - master
  55. - -ip=seaweedfs-master
  56. - -volumeSizeLimitMB=1024
  57. volumes:
  58. - seaweedfs-master-data:/data
  59. seaweedfs-volume:
  60. image: chrislusf/seaweedfs:latest
  61. ports:
  62. - "8080:8080"
  63. command:
  64. - volume
  65. - -mserver=seaweedfs-master:9333
  66. - -ip=seaweedfs-volume
  67. - -publicUrl=seaweedfs-volume:8080
  68. depends_on:
  69. - seaweedfs-master
  70. volumes:
  71. - seaweedfs-volume-data:/data
  72. seaweedfs-filer:
  73. image: chrislusf/seaweedfs:latest
  74. ports:
  75. - "8888:8888"
  76. - "8333:8333" # S3 API port
  77. command:
  78. - filer
  79. - -master=seaweedfs-master:9333
  80. - -ip=seaweedfs-filer
  81. - -s3
  82. - -s3.port=8333
  83. depends_on:
  84. - seaweedfs-master
  85. - seaweedfs-volume
  86. volumes:
  87. - ./filer.toml:/etc/seaweedfs/filer.toml
  88. - seaweedfs-filer-data:/data
  89. volumes:
  90. openbao-data:
  91. seaweedfs-master-data:
  92. seaweedfs-volume-data:
  93. seaweedfs-filer-data:
  94. networks:
  95. default:
  96. name: seaweedfs-kms-test