mirror of
https://github.com/chrislusf/seaweedfs
synced 2024-08-25 11:10:47 +02:00
Add the ability to send commands to weed shell from the docker image. Allows an operator to perform maintenance commands like so: ``` docker run \ --rm \ -e SHELL_FILER=localhost:8888 \ -e SHELL_MASTER=localhost:9333 \ chrislusf/seaweedfs:local \ "shell" \ "fs.configure -locationPrefix=/buckets/foo -volumeGrowthCount=3 -replication=002 -apply" ```
70 lines
1.4 KiB
Bash
Executable file
70 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
isArgPassed() {
|
|
arg="$1"
|
|
argWithEqualSign="$1="
|
|
shift
|
|
while [ $# -gt 0 ]; do
|
|
passedArg="$1"
|
|
shift
|
|
case $passedArg in
|
|
$arg)
|
|
return 0
|
|
;;
|
|
$argWithEqualSign*)
|
|
return 0
|
|
;;
|
|
esac
|
|
done
|
|
return 1
|
|
}
|
|
|
|
case "$1" in
|
|
|
|
'master')
|
|
ARGS="-mdir=/data -volumePreallocate -volumeSizeLimitMB=1024"
|
|
shift
|
|
exec /usr/bin/weed -logtostderr=true master $ARGS $@
|
|
;;
|
|
|
|
'volume')
|
|
ARGS="-dir=/data -max=0"
|
|
if isArgPassed "-max" "$@"; then
|
|
ARGS="-dir=/data"
|
|
fi
|
|
shift
|
|
exec /usr/bin/weed -logtostderr=true volume $ARGS $@
|
|
;;
|
|
|
|
'server')
|
|
ARGS="-dir=/data -volume.max=0 -master.volumePreallocate -master.volumeSizeLimitMB=1024"
|
|
if isArgPassed "-volume.max" "$@"; then
|
|
ARGS="-dir=/data -master.volumePreallocate -master.volumeSizeLimitMB=1024"
|
|
fi
|
|
shift
|
|
exec /usr/bin/weed -logtostderr=true server $ARGS $@
|
|
;;
|
|
|
|
'filer')
|
|
ARGS=""
|
|
shift
|
|
exec /usr/bin/weed -logtostderr=true filer $ARGS $@
|
|
;;
|
|
|
|
's3')
|
|
ARGS="-domainName=$S3_DOMAIN_NAME -key.file=$S3_KEY_FILE -cert.file=$S3_CERT_FILE"
|
|
shift
|
|
exec /usr/bin/weed -logtostderr=true s3 $ARGS $@
|
|
;;
|
|
|
|
'shell')
|
|
ARGS="-cluster=$SHELL_CLUSTER -filer=$SHELL_FILER -filerGroup=$SHELL_FILER_GROUP -master=$SHELL_MASTER -options=$SHELL_OPTIONS"
|
|
shift
|
|
exec echo "$@" | /usr/bin/weed -logtostderr=true shell $ARGS
|
|
;;
|
|
|
|
*)
|
|
exec /usr/bin/weed $@
|
|
;;
|
|
esac
|