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=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
							 |