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.
 
 
 
 
 
 

73 lines
1.8 KiB

#!/bin/sh
set -e
echo "Starting SeaweedFS Admin Server (gRPC)..."
echo "Master Address: $MASTER_ADDRESS"
echo "Admin HTTP Port: $ADMIN_PORT"
echo "Admin gRPC Port: $GRPC_PORT"
# Wait for master to be ready
echo "Waiting for master to be ready..."
until wget --quiet --tries=1 --spider http://$MASTER_ADDRESS/cluster/status > /dev/null 2>&1; do
echo "Master not ready, waiting..."
sleep 5
done
echo "Master is ready!"
# Install protobuf compiler and Go protobuf plugins
apk add --no-cache protobuf protobuf-dev
# Set up Go environment
export GOPATH=/tmp/go
export PATH=$PATH:$GOPATH/bin
mkdir -p $GOPATH/src $GOPATH/bin $GOPATH/pkg
# Install Go protobuf plugins globally first
export GOPATH=/tmp/go
mkdir -p $GOPATH
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
# Set up working directory for compilation
cd /tmp
mkdir -p admin-project
cd admin-project
# Create a basic go.mod with required dependencies
cat > go.mod << 'EOF'
module admin-server
go 1.24
require (
google.golang.org/grpc v1.65.0
google.golang.org/protobuf v1.34.2
)
EOF
go mod tidy
# Add Go bin to PATH
export PATH=$PATH:$(go env GOPATH)/bin
# Create directory structure for protobuf
mkdir -p worker_pb
# Copy the admin server source and existing worker protobuf file
cp /admin_grpc_server.go .
cp /worker.proto .
# Generate Go code from the existing worker protobuf
echo "Generating gRPC code from worker.proto..."
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
worker.proto
# Build and run the admin server
echo "Building admin server..."
go mod tidy
go build -o admin-server admin_grpc_server.go
echo "Starting admin server..."
exec ./admin-server