You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							162 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							162 lines
						
					
					
						
							3.9 KiB
						
					
					
				| # 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=8080 -mserver=seaweedfs-master:9333 | |
|     ports: | |
|       - "8080:8080" | |
|     volumes: | |
|       - volume-data:/data | |
|     depends_on: | |
|       seaweedfs-master: | |
|         condition: service_healthy | |
|     healthcheck: | |
|       test: ["CMD", "curl", "-f", "http://localhost:8080/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.test | |
|     container_name: seaweedfs-s3-iam-tests | |
|     environment: | |
|       - WEED_BINARY=weed | |
|       - S3_PORT=8333 | |
|       - FILER_PORT=8888 | |
|       - MASTER_PORT=9333 | |
|       - VOLUME_PORT=8080 | |
|       - 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
 |