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.
		
		
		
		
		
			
		
			
				
					
					
						
							121 lines
						
					
					
						
							3.2 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							121 lines
						
					
					
						
							3.2 KiB
						
					
					
				
								version: '3.8'
							 | 
						|
								
							 | 
						|
								services:
							 | 
						|
								  # Keycloak OIDC Provider
							 | 
						|
								  keycloak:
							 | 
						|
								    image: quay.io/keycloak/keycloak:26.0.7
							 | 
						|
								    container_name: keycloak-iam-test
							 | 
						|
								    environment:
							 | 
						|
								      KEYCLOAK_ADMIN: admin
							 | 
						|
								      KEYCLOAK_ADMIN_PASSWORD: admin123
							 | 
						|
								      KC_HTTP_PORT: 8080
							 | 
						|
								      KC_HOSTNAME_STRICT: false
							 | 
						|
								      KC_HOSTNAME_STRICT_HTTPS: false
							 | 
						|
								      KC_HTTP_ENABLED: true
							 | 
						|
								      KC_HEALTH_ENABLED: true
							 | 
						|
								    ports:
							 | 
						|
								      - "8080:8080"
							 | 
						|
								    command: 
							 | 
						|
								      - start-dev
							 | 
						|
								      - --import-realm
							 | 
						|
								    volumes:
							 | 
						|
								      - ./keycloak-realm.json:/opt/keycloak/data/import/realm.json:ro
							 | 
						|
								    healthcheck:
							 | 
						|
								      test: ["CMD", "curl", "-f", "http://localhost:8080/health/ready"]
							 | 
						|
								      interval: 30s
							 | 
						|
								      timeout: 10s
							 | 
						|
								      retries: 5
							 | 
						|
								      start_period: 60s
							 | 
						|
								    networks:
							 | 
						|
								      - seaweedfs-iam
							 | 
						|
								
							 | 
						|
								  # SeaweedFS Master
							 | 
						|
								  seaweedfs-master:
							 | 
						|
								    image: chrislusf/seaweedfs:latest
							 | 
						|
								    container_name: seaweedfs-master-iam
							 | 
						|
								    ports:
							 | 
						|
								      - "9333:9333"
							 | 
						|
								      - "19333:19333"
							 | 
						|
								    command: master -ip=seaweedfs-master -mdir=/data -volumeSizeLimitMB=50
							 | 
						|
								    volumes:
							 | 
						|
								      - seaweedfs-master-data:/data
							 | 
						|
								    healthcheck:
							 | 
						|
								      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:9333/cluster/status"]
							 | 
						|
								      interval: 10s
							 | 
						|
								      timeout: 5s
							 | 
						|
								      retries: 3
							 | 
						|
								    networks:
							 | 
						|
								      - seaweedfs-iam
							 | 
						|
								
							 | 
						|
								  # SeaweedFS Volume Server
							 | 
						|
								  seaweedfs-volume:
							 | 
						|
								    image: chrislusf/seaweedfs:latest
							 | 
						|
								    container_name: seaweedfs-volume-iam
							 | 
						|
								    ports:
							 | 
						|
								      - "8080:8080"
							 | 
						|
								    command: volume -ip=seaweedfs-volume -port=8080 -mserver=seaweedfs-master:9333 -dir=/data
							 | 
						|
								    volumes:
							 | 
						|
								      - seaweedfs-volume-data:/data
							 | 
						|
								    depends_on:
							 | 
						|
								      seaweedfs-master:
							 | 
						|
								        condition: service_healthy
							 | 
						|
								    healthcheck:
							 | 
						|
								      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8080/status"]
							 | 
						|
								      interval: 10s
							 | 
						|
								      timeout: 5s
							 | 
						|
								      retries: 3
							 | 
						|
								    networks:
							 | 
						|
								      - seaweedfs-iam
							 | 
						|
								
							 | 
						|
								  # SeaweedFS Filer
							 | 
						|
								  seaweedfs-filer:
							 | 
						|
								    image: chrislusf/seaweedfs:latest
							 | 
						|
								    container_name: seaweedfs-filer-iam
							 | 
						|
								    ports:
							 | 
						|
								      - "8888:8888"
							 | 
						|
								      - "18888:18888"
							 | 
						|
								    command: filer -ip=seaweedfs-filer -master=seaweedfs-master:9333
							 | 
						|
								    depends_on:
							 | 
						|
								      seaweedfs-master:
							 | 
						|
								        condition: service_healthy
							 | 
						|
								    healthcheck:
							 | 
						|
								      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8888/"]
							 | 
						|
								      interval: 10s
							 | 
						|
								      timeout: 5s
							 | 
						|
								      retries: 3
							 | 
						|
								    networks:
							 | 
						|
								      - seaweedfs-iam
							 | 
						|
								
							 | 
						|
								  # SeaweedFS S3 Gateway with IAM
							 | 
						|
								  seaweedfs-s3:
							 | 
						|
								    build:
							 | 
						|
								      context: ../../..
							 | 
						|
								      dockerfile: test/s3/iam/Dockerfile.s3
							 | 
						|
								    container_name: seaweedfs-s3-iam
							 | 
						|
								    ports:
							 | 
						|
								      - "8333:8333"
							 | 
						|
								    environment:
							 | 
						|
								      - KEYCLOAK_URL=http://keycloak:8080
							 | 
						|
								    command: s3 -port=8333 -filer=seaweedfs-filer:8888 -iam.config=/etc/seaweedfs/iam_config.json
							 | 
						|
								    volumes:
							 | 
						|
								      - ./iam_config_docker.json:/etc/seaweedfs/iam_config.json:ro
							 | 
						|
								    depends_on:
							 | 
						|
								      keycloak:
							 | 
						|
								        condition: service_healthy
							 | 
						|
								      seaweedfs-filer:
							 | 
						|
								        condition: service_healthy
							 | 
						|
								    healthcheck:
							 | 
						|
								      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8333/"]
							 | 
						|
								      interval: 10s
							 | 
						|
								      timeout: 5s
							 | 
						|
								      retries: 3
							 | 
						|
								    networks:
							 | 
						|
								      - seaweedfs-iam
							 | 
						|
								
							 | 
						|
								volumes:
							 | 
						|
								  seaweedfs-master-data:
							 | 
						|
								  seaweedfs-volume-data:
							 | 
						|
								
							 | 
						|
								networks:
							 | 
						|
								  seaweedfs-iam:
							 | 
						|
								    driver: bridge
							 |