| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- # Docker Compose for SeaweedFS S3 IAM Integration Tests
- version: '3.8'
- services:
- # SeaweedFS Master
- seaweedfs-master:
- image: chrislusf/seaweedfs:latest
- container_name: seaweedfs-master-test
- command: master -mdir=/data -defaultReplication=000 -port=9333
- ports:
- - "9333:9333"
- volumes:
- - master-data:/data
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9333/cluster/status"]
- interval: 10s
- timeout: 5s
- retries: 5
- networks:
- - seaweedfs-test
- # SeaweedFS Volume
- seaweedfs-volume:
- image: chrislusf/seaweedfs:latest
- container_name: seaweedfs-volume-test
- command: volume -dir=/data -port=8083 -mserver=seaweedfs-master:9333
- ports:
- - "8083:8083"
- volumes:
- - volume-data:/data
- depends_on:
- seaweedfs-master:
- condition: service_healthy
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:8083/status"]
- interval: 10s
- timeout: 5s
- retries: 5
- networks:
- - seaweedfs-test
- # SeaweedFS Filer
- seaweedfs-filer:
- image: chrislusf/seaweedfs:latest
- container_name: seaweedfs-filer-test
- command: filer -port=8888 -master=seaweedfs-master:9333 -defaultStoreDir=/data
- ports:
- - "8888:8888"
- volumes:
- - filer-data:/data
- depends_on:
- seaweedfs-master:
- condition: service_healthy
- seaweedfs-volume:
- condition: service_healthy
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:8888/status"]
- interval: 10s
- timeout: 5s
- retries: 5
- networks:
- - seaweedfs-test
- # SeaweedFS S3 API
- seaweedfs-s3:
- image: chrislusf/seaweedfs:latest
- container_name: seaweedfs-s3-test
- command: s3 -port=8333 -filer=seaweedfs-filer:8888 -config=/config/test_config.json
- ports:
- - "8333:8333"
- volumes:
- - ./test_config.json:/config/test_config.json:ro
- depends_on:
- seaweedfs-filer:
- condition: service_healthy
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:8333/"]
- interval: 10s
- timeout: 5s
- retries: 5
- networks:
- - seaweedfs-test
- # Test Runner
- integration-tests:
- build:
- context: ../../../
- dockerfile: test/s3/iam/Dockerfile.s3
- container_name: seaweedfs-s3-iam-tests
- environment:
- - WEED_BINARY=weed
- - S3_PORT=8333
- - FILER_PORT=8888
- - MASTER_PORT=9333
- - VOLUME_PORT=8083
- - TEST_TIMEOUT=30m
- - LOG_LEVEL=2
- depends_on:
- seaweedfs-s3:
- condition: service_healthy
- volumes:
- - .:/app/test/s3/iam
- - test-results:/app/test-results
- networks:
- - seaweedfs-test
- command: ["make", "test"]
- # Optional: Mock LDAP Server for LDAP testing
- ldap-server:
- image: osixia/openldap:1.5.0
- container_name: ldap-server-test
- environment:
- LDAP_ORGANISATION: "Example Corp"
- LDAP_DOMAIN: "example.com"
- LDAP_ADMIN_PASSWORD: "admin-password"
- LDAP_CONFIG_PASSWORD: "config-password"
- LDAP_READONLY_USER: "true"
- LDAP_READONLY_USER_USERNAME: "readonly"
- LDAP_READONLY_USER_PASSWORD: "readonly-password"
- ports:
- - "389:389"
- - "636:636"
- volumes:
- - ldap-data:/var/lib/ldap
- - ldap-config:/etc/ldap/slapd.d
- networks:
- - seaweedfs-test
- # Optional: LDAP Admin UI
- ldap-admin:
- image: osixia/phpldapadmin:latest
- container_name: ldap-admin-test
- environment:
- PHPLDAPADMIN_LDAP_HOSTS: "ldap-server"
- PHPLDAPADMIN_HTTPS: "false"
- ports:
- - "8080:80"
- depends_on:
- - ldap-server
- networks:
- - seaweedfs-test
- volumes:
- master-data:
- driver: local
- volume-data:
- driver: local
- filer-data:
- driver: local
- ldap-data:
- driver: local
- ldap-config:
- driver: local
- test-results:
- driver: local
- networks:
- seaweedfs-test:
- driver: bridge
- ipam:
- config:
- - subnet: 172.20.0.0/16
|