diff options
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/Dockerfile.local | 29 | ||||
| -rw-r--r-- | docker/Makefile | 19 | ||||
| -rw-r--r-- | docker/README.md | 4 | ||||
| -rwxr-xr-x | docker/entrypoint.sh | 29 | ||||
| -rw-r--r-- | docker/local-cluster-compose.yml | 53 | ||||
| -rw-r--r-- | docker/local-dev-compose.yml | 48 | ||||
| -rw-r--r-- | docker/seaweedfs-compose.yml | 32 | ||||
| -rw-r--r-- | docker/seaweedfs-dev-compose.yml | 32 |
8 files changed, 163 insertions, 83 deletions
diff --git a/docker/Dockerfile.local b/docker/Dockerfile.local new file mode 100644 index 000000000..693d8a952 --- /dev/null +++ b/docker/Dockerfile.local @@ -0,0 +1,29 @@ +FROM alpine AS final +LABEL author="Chris Lu" +COPY ./weed /usr/bin/ +RUN mkdir -p /etc/seaweedfs +COPY ./filer.toml /etc/seaweedfs/filer.toml +COPY ./entrypoint.sh /entrypoint.sh + +# volume server grpc port +EXPOSE 18080 +# volume server http port +EXPOSE 8080 +# filer server grpc port +EXPOSE 18888 +# filer server http port +EXPOSE 8888 +# master server shared grpc port +EXPOSE 19333 +# master server shared http port +EXPOSE 9333 +# s3 server http port +EXPOSE 8333 + +RUN mkdir -p /data/filerldb2 + +VOLUME /data + +RUN chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/Makefile b/docker/Makefile new file mode 100644 index 000000000..166188bc3 --- /dev/null +++ b/docker/Makefile @@ -0,0 +1,19 @@ +all: gen + +.PHONY : gen + +gen: dev + +build: + cd ../weed; GOOS=linux go build; mv weed ../docker/ + docker build --no-cache -t chrislusf/seaweedfs:local -f Dockerfile.local . + rm ./weed + +dev: build + docker-compose -f local-dev-compose.yml -p seaweedfs up + +cluster: build + docker-compose -f local-cluster-compose.yml -p seaweedfs up + +clean: + rm ./weed diff --git a/docker/README.md b/docker/README.md index 1a2833c7e..65241b517 100644 --- a/docker/README.md +++ b/docker/README.md @@ -25,7 +25,5 @@ docker-compose -f seaweedfs-dev-compose.yml -p seaweedfs up ```bash cd $GOPATH/src/github.com/chrislusf/seaweedfs/docker - -docker-compose -f local-dev-compose.yml -p seaweedfs up - +make ``` diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 791527d3a..05db7a672 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -3,44 +3,33 @@ case "$1" in 'master') - ARGS="-mdir /data" - # Is this instance linked with an other master? (Docker commandline "--link master1:master") - if [ -n "$MASTER_PORT_9333_TCP_ADDR" ] ; then - ARGS="$ARGS -peers=$MASTER_PORT_9333_TCP_ADDR:$MASTER_PORT_9333_TCP_PORT" - fi + ARGS="-mdir=/data -volumePreallocate -volumeSizeLimitMB=1024" exec /usr/bin/weed $@ $ARGS ;; 'volume') - ARGS="-ip `hostname -i` -dir /data" - # Is this instance linked with a master? (Docker commandline "--link master1:master") - if [ -n "$MASTER_PORT_9333_TCP_ADDR" ] ; then - ARGS="$ARGS -mserver=$MASTER_PORT_9333_TCP_ADDR:$MASTER_PORT_9333_TCP_PORT" - fi + ARGS="-dir=/data -max=0" + if [[ $@ == *"-max="* ]]; then + ARGS="-dir=/data" + fi exec /usr/bin/weed $@ $ARGS ;; 'server') - ARGS="-ip `hostname -i` -dir /data" - if [ -n "$MASTER_PORT_9333_TCP_ADDR" ] ; then - ARGS="$ARGS -master.peers=$MASTER_PORT_9333_TCP_ADDR:$MASTER_PORT_9333_TCP_PORT" - fi + ARGS="-dir=/data -volume.max=0 -master.volumePreallocate -master.volumeSizeLimitMB=1024" + if [[ $@ == *"-volume.max="* ]]; then + ARGS="-dir=/data -master.volumePreallocate -master.volumeSizeLimitMB=1024" + fi exec /usr/bin/weed $@ $ARGS ;; 'filer') ARGS="" - if [ -n "$MASTER_PORT_9333_TCP_ADDR" ] ; then - ARGS="$ARGS -master=$MASTER_PORT_9333_TCP_ADDR:$MASTER_PORT_9333_TCP_PORT" - fi exec /usr/bin/weed $@ $ARGS ;; 's3') ARGS="-domainName=$S3_DOMAIN_NAME -key.file=$S3_KEY_FILE -cert.file=$S3_CERT_FILE" - if [ -n "$FILER_PORT_8888_TCP_ADDR" ] ; then - ARGS="$ARGS -filer=$FILER_PORT_8888_TCP_ADDR:$FILER_PORT_8888_TCP_PORT" - fi exec /usr/bin/weed $@ $ARGS ;; diff --git a/docker/local-cluster-compose.yml b/docker/local-cluster-compose.yml new file mode 100644 index 000000000..a1ac824e7 --- /dev/null +++ b/docker/local-cluster-compose.yml @@ -0,0 +1,53 @@ +version: '2' + +services: + master0: + image: chrislusf/seaweedfs:local + ports: + - 9333:9333 + - 19333:19333 + command: "master -ip=master0 -port=9333 -peers=master0:9333,master1:9334,master2:9335" + master1: + image: chrislusf/seaweedfs:local + ports: + - 9334:9334 + - 19334:19334 + command: "master -ip=master1 -port=9334 -peers=master0:9333,master1:9334,master2:9335" + master2: + image: chrislusf/seaweedfs:local + ports: + - 9335:9335 + - 19335:19335 + command: "master -ip=master2 -port=9335 -peers=master0:9333,master1:9334,master2:9335" + volume: + image: chrislusf/seaweedfs:local + ports: + - 8080:8080 + - 18080:18080 + command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume' + depends_on: + - master0 + - master1 + - master2 + filer: + image: chrislusf/seaweedfs:local + ports: + - 8888:8888 + - 18888:18888 + command: 'filer -master="master0:9333,master1:9334,master2:9335"' + depends_on: + - master0 + - master1 + - master2 + - volume + s3: + image: chrislusf/seaweedfs:local + ports: + - 8333:8333 + command: 's3 -filer="filer:8888"' + depends_on: + - master0 + - master1 + - master2 + - volume + - filer diff --git a/docker/local-dev-compose.yml b/docker/local-dev-compose.yml index c2f588a60..f6fd0f4ce 100644 --- a/docker/local-dev-compose.yml +++ b/docker/local-dev-compose.yml @@ -2,42 +2,34 @@ version: '2' services: master: - build: - context: . - dockerfile: Dockerfile.go_build + image: chrislusf/seaweedfs:local ports: - - 9333:9333 - - 19333:19333 + - 9333:9333 + - 19333:19333 command: "master -ip=master" volume: - build: - context: . - dockerfile: Dockerfile.go_build + image: chrislusf/seaweedfs:local ports: - - 8080:8080 - - 18080:18080 - command: '-v=2 volume -max=5 -mserver="master:9333" -port=8080 -ip=volume' + - 8080:8080 + - 18080:18080 + command: "volume -mserver=master:9333 -port=8080 -ip=volume" depends_on: - - master + - master filer: - build: - context: . - dockerfile: Dockerfile.go_build + image: chrislusf/seaweedfs:local ports: - - 8888:8888 - - 18888:18888 - command: '-v=4 filer -master="master:9333"' + - 8888:8888 + - 18888:18888 + command: 'filer -master="master:9333"' depends_on: - - master - - volume + - master + - volume s3: - build: - context: . - dockerfile: Dockerfile.go_build + image: chrislusf/seaweedfs:local ports: - - 8333:8333 - command: '-v=4 s3 -filer="filer:8888"' + - 8333:8333 + command: 's3 -filer="filer:8888"' depends_on: - - master - - volume - - filer + - master + - volume + - filer diff --git a/docker/seaweedfs-compose.yml b/docker/seaweedfs-compose.yml index 7f0cbc6f9..70d005017 100644 --- a/docker/seaweedfs-compose.yml +++ b/docker/seaweedfs-compose.yml @@ -4,28 +4,28 @@ services: master: image: chrislusf/seaweedfs # use a remote image ports: - - 9333:9333 - - 19333:19333 + - 9333:9333 + - 19333:19333 command: "master -ip=master" volume: image: chrislusf/seaweedfs # use a remote image ports: - - 8080:8080 - - 18080:18080 - command: 'volume -max=15 -mserver="master:9333" -port=8080' + - 8080:8080 + - 18080:18080 + command: 'volume -mserver="master:9333" -port=8080' depends_on: - - master + - master filer: image: chrislusf/seaweedfs # use a remote image ports: - - 8888:8888 - - 18888:18888 + - 8888:8888 + - 18888:18888 command: 'filer -master="master:9333"' tty: true stdin_open: true depends_on: - - master - - volume + - master + - volume cronjob: image: chrislusf/seaweedfs # use a remote image command: 'cronjob' @@ -34,14 +34,14 @@ services: CRON_SCHEDULE: '*/2 * * * * *' # Default: '*/5 * * * * *' WEED_MASTER: master:9333 # Default: localhost:9333 depends_on: - - master - - volume + - master + - volume s3: image: chrislusf/seaweedfs # use a remote image ports: - - 8333:8333 + - 8333:8333 command: 's3 -filer="filer:8888"' depends_on: - - master - - volume - - filer + - master + - volume + - filer diff --git a/docker/seaweedfs-dev-compose.yml b/docker/seaweedfs-dev-compose.yml index 765770084..75801102e 100644 --- a/docker/seaweedfs-dev-compose.yml +++ b/docker/seaweedfs-dev-compose.yml @@ -4,32 +4,32 @@ services: master: image: chrislusf/seaweedfs:dev # use a remote dev image ports: - - 9333:9333 - - 19333:19333 + - 9333:9333 + - 19333:19333 command: "master -ip=master" volume: image: chrislusf/seaweedfs:dev # use a remote dev image ports: - - 8080:8080 - - 18080:18080 - command: '-v=2 volume -max=5 -mserver="master:9333" -port=8080 -ip=volume' + - 8080:8080 + - 18080:18080 + command: 'volume -mserver="master:9333" -port=8080 -ip=volume' depends_on: - - master + - master filer: image: chrislusf/seaweedfs:dev # use a remote dev image ports: - - 8888:8888 - - 18888:18888 - command: '-v=4 filer -master="master:9333"' + - 8888:8888 + - 18888:18888 + command: 'filer -master="master:9333"' depends_on: - - master - - volume + - master + - volume s3: image: chrislusf/seaweedfs:dev # use a remote dev image ports: - - 8333:8333 - command: '-v=4 s3 -filer="filer:8888"' + - 8333:8333 + command: 's3 -filer="filer:8888"' depends_on: - - master - - volume - - filer + - master + - volume + - filer |
