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.
		
		
		
		
		
			
		
			
				
					
					
						
							240 lines
						
					
					
						
							5.7 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							240 lines
						
					
					
						
							5.7 KiB
						
					
					
				| name: admin_integration | |
|  | |
| networks: | |
|   seaweed_net: | |
|     driver: bridge | |
|  | |
| services: | |
|   master: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "9333:9333" | |
|       - "19333:19333" | |
|     command: "master -ip=master -mdir=/data -volumeSizeLimitMB=50" | |
|     environment: | |
|       - WEED_MASTER_VOLUME_GROWTH_COPY_1=1 | |
|       - WEED_MASTER_VOLUME_GROWTH_COPY_2=2 | |
|       - WEED_MASTER_VOLUME_GROWTH_COPY_OTHER=1 | |
|     volumes: | |
|       - ./data/master:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume1: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8080:8080" | |
|       - "18080:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume1 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume1:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume2: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8081:8080" | |
|       - "18081:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume2 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume2:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume3: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8082:8080" | |
|       - "18082:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume3 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume3:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume4: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8083:8080" | |
|       - "18083:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume4 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume4:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume5: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8084:8080" | |
|       - "18084:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume5 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume5:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   volume6: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8085:8080" | |
|       - "18085:18080" | |
|     command: "volume -mserver=master:9333 -ip=volume6 -dir=/data -max=10" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/volume6:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   filer: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "8888:8888" | |
|       - "18888:18888" | |
|     command: "filer -master=master:9333 -ip=filer" | |
|     depends_on: | |
|       - master | |
|     volumes: | |
|       - ./data/filer:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   admin: | |
|     image: chrislusf/seaweedfs:local | |
|     ports: | |
|       - "23646:23646"      # HTTP admin interface (default port) | |
|       - "33646:33646"      # gRPC worker communication (23646 + 10000) | |
|     command: "-v=2 admin -port=23646 -masters=master:9333 -dataDir=/data" | |
|     depends_on: | |
|       - master | |
|       - filer | |
|     volumes: | |
|       - ./data/admin:/data | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   worker1: | |
|     image: chrislusf/seaweedfs:local | |
|     command: "-v=2 worker -admin=admin:23646 -capabilities=erasure_coding,vacuum -maxConcurrent=2" | |
|     depends_on: | |
|       - admin | |
|     volumes: | |
|       - ./data/worker1:/data | |
|     networks: | |
|       - seaweed_net | |
|     environment: | |
|       - WORKER_ID=worker-1 | |
|  | |
|   worker2: | |
|     image: chrislusf/seaweedfs:local | |
|     command: "-v=2 worker -admin=admin:23646 -capabilities=erasure_coding,vacuum -maxConcurrent=2" | |
|     depends_on: | |
|       - admin | |
|     volumes: | |
|       - ./data/worker2:/data | |
|     networks: | |
|       - seaweed_net | |
|     environment: | |
|       - WORKER_ID=worker-2 | |
|  | |
|   worker3: | |
|     image: chrislusf/seaweedfs:local | |
|     command: "-v=2 worker -admin=admin:23646 -capabilities=erasure_coding,vacuum -maxConcurrent=2" | |
|     depends_on: | |
|       - admin | |
|     volumes: | |
|       - ./data/worker3:/data | |
|     networks: | |
|       - seaweed_net | |
|     environment: | |
|       - WORKER_ID=worker-3 | |
|  | |
|   load_generator: | |
|     image: chrislusf/seaweedfs:local | |
|     entrypoint: ["/bin/sh"] | |
|     command: > | |
|       -c " | |
|       echo 'Starting load generator...'; | |
|       sleep 30; | |
|       echo 'Generating continuous load with 50MB volume limit...'; | |
|       while true; do | |
|         echo 'Writing test files...'; | |
|         echo 'Test file content at $(date)' | /usr/bin/weed upload -server=master:9333; | |
|         sleep 5; | |
|         echo 'Deleting some files...'; | |
|         /usr/bin/weed shell -master=master:9333 <<< 'fs.rm /test_file_*' || true; | |
|         sleep 10; | |
|       done | |
|       "       | |
|     depends_on: | |
|       - master | |
|       - filer | |
|       - admin | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   monitor: | |
|     image: alpine:latest | |
|     entrypoint: ["/bin/sh"] | |
|     command: > | |
|       -c " | |
|       apk add --no-cache curl jq; | |
|       echo 'Starting cluster monitor...'; | |
|       sleep 30; | |
|       while true; do | |
|         echo '=== Cluster Status $(date) ==='; | |
|         echo 'Master status:'; | |
|         curl -s http://master:9333/cluster/status | jq '.IsLeader, .Peers' || echo 'Master not ready'; | |
|         echo; | |
|         echo 'Admin status:'; | |
|         curl -s http://admin:23646/ | grep -o 'Admin.*Interface' || echo 'Admin not ready'; | |
|         echo; | |
|         echo 'Volume count by server:'; | |
|         curl -s http://master:9333/vol/status | jq '.Volumes | length' || echo 'Volumes not ready'; | |
|         echo; | |
|         sleep 60; | |
|       done | |
|       "       | |
|     depends_on: | |
|       - master | |
|       - admin | |
|       - filer | |
|     networks: | |
|       - seaweed_net | |
|  | |
|   vacuum-tester: | |
|     image: chrislusf/seaweedfs:local | |
|     entrypoint: ["/bin/sh"] | |
|     command: > | |
|       -c " | |
|       echo 'Installing dependencies for vacuum testing...'; | |
|       apk add --no-cache jq curl go bash; | |
|       echo 'Vacuum tester ready...'; | |
|       echo 'Use: docker-compose exec vacuum-tester sh'; | |
|       echo 'Available commands: go, weed, curl, jq, bash, sh'; | |
|       sleep infinity | |
|       "       | |
|     depends_on: | |
|       - master | |
|       - admin | |
|       - filer | |
|     volumes: | |
|       - .:/testing | |
|     working_dir: /testing | |
|     networks: | |
|       - seaweed_net | |
|     environment: | |
|       - MASTER_HOST=master:9333 | |
|       - ADMIN_HOST=admin:23646  |