aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authoryulai.li <blacktear23@gmail.com>2022-06-26 22:43:37 +0800
committeryulai.li <blacktear23@gmail.com>2022-06-26 22:43:37 +0800
commit46e0b629e529f3aff535f90dd25eb719adf1c0d0 (patch)
tree734125b48b6d96f8796a2b89b924312cd169ef0e /docker
parenta5bd0b3a1644a77dcc0b9ff41c4ce8eb3ea0d566 (diff)
parentdc59ccd110a321db7d0b0480631aa95a3d9ba7e6 (diff)
downloadseaweedfs-46e0b629e529f3aff535f90dd25eb719adf1c0d0.tar.xz
seaweedfs-46e0b629e529f3aff535f90dd25eb719adf1c0d0.zip
Update tikv client version and add one PC support
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile56
-rw-r--r--docker/Dockerfile.gccgo_build1
-rw-r--r--docker/Dockerfile.go_build6
-rw-r--r--docker/Dockerfile.local1
-rw-r--r--docker/Dockerfile.rocksdb_large (renamed from docker/Dockerfile.go_build_large)31
-rw-r--r--docker/Dockerfile.s3tests2
-rw-r--r--docker/Makefile33
-rw-r--r--docker/README.md5
-rw-r--r--docker/compose/fluent.json4
-rw-r--r--docker/compose/local-auditlog-compose.yml36
-rw-r--r--docker/compose/local-cluster-compose.yml29
-rw-r--r--docker/compose/local-hashicorp-raft-compose.yml89
-rw-r--r--docker/compose/local-nextcloud-compose.yml44
-rw-r--r--docker/compose/local-s3tests-compose.yml4
-rw-r--r--docker/compose/local-sync-mount-compose.yml21
-rw-r--r--docker/compose/master-cloud.toml1
-rw-r--r--docker/compose/test-etcd-filer.yml61
-rw-r--r--docker/compose/test-ydb-filer.yml35
-rw-r--r--docker/compose/tls.env4
-rwxr-xr-xdocker/entrypoint.sh26
-rw-r--r--docker/filer_rocksdb.toml3
-rw-r--r--docker/prometheus/prometheus.yml1
-rw-r--r--docker/seaweedfs-compose.yml19
-rw-r--r--docker/seaweedfs.sql2
24 files changed, 406 insertions, 108 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
deleted file mode 100644
index d2c365c29..000000000
--- a/docker/Dockerfile
+++ /dev/null
@@ -1,56 +0,0 @@
-FROM alpine
-
-# 'latest' or 'dev'
-ARG RELEASE=latest
-
-RUN \
- ARCH=$(if [ $(uname -m) == "x86_64" ] && [ $(getconf LONG_BIT) == "64" ]; then echo "amd64"; \
- elif [ $(uname -m) == "x86_64" ] && [ $(getconf LONG_BIT) == "32" ]; then echo "386"; \
- elif [ $(uname -m) == "aarch64" ]; then echo "arm64"; \
- elif [ $(uname -m) == "armv7l" ]; then echo "arm"; \
- elif [ $(uname -m) == "armv6l" ]; then echo "arm"; \
- elif [ $(uname -m) == "s390x" ]; then echo "s390x"; \
- elif [ $(uname -m) == "ppc64le" ]; then echo "ppc64le"; fi;) && \
- echo "Building for $ARCH" 1>&2 && \
- SUPERCRONIC_SHA1SUM=$(echo $ARCH | sed 's/386/e0126b0102b9f388ecd55714358e3ad60d0cebdb/g' | sed 's/amd64/5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85/g' | sed 's/arm64/e2714c43e7781bf1579c85aa61259245f56dbba1/g' | sed 's/arm/47481c3341bc3a1ae91a728e0cc63c8e6d3791ad/g') && \
- SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-$ARCH && \
- SUPERCRONIC=supercronic-linux-$ARCH && \
- # Install SeaweedFS and Supercronic ( for cron job mode )
- apk add --no-cache --virtual build-dependencies --update wget curl ca-certificates && \
- apk add fuse && \
- wget -P /tmp https://github.com/$(curl -s -L https://github.com/chrislusf/seaweedfs/releases/${RELEASE} | egrep -o "chrislusf/seaweedfs/releases/download/.*/linux_$ARCH.tar.gz" | head -n 1) && \
- tar -C /usr/bin/ -xzvf /tmp/linux_$ARCH.tar.gz && \
- curl -fsSLO "$SUPERCRONIC_URL" && \
- echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \
- chmod +x "$SUPERCRONIC" && \
- mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \
- ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic && \
- apk del build-dependencies && \
- rm -rf /tmp/*
-
-# volume server gprc port
-EXPOSE 18080
-# volume server http port
-EXPOSE 8080
-# filer server gprc port
-EXPOSE 18888
-# filer server http port
-EXPOSE 8888
-# master server shared gprc port
-EXPOSE 19333
-# master server shared http port
-EXPOSE 9333
-# s3 server http port
-EXPOSE 8333
-# webdav server http port
-EXPOSE 7333
-
-RUN mkdir -p /data/filerldb2
-
-VOLUME /data
-
-COPY filer.toml /etc/seaweedfs/filer.toml
-COPY entrypoint.sh /entrypoint.sh
-RUN chmod +x /entrypoint.sh
-
-ENTRYPOINT ["/entrypoint.sh"]
diff --git a/docker/Dockerfile.gccgo_build b/docker/Dockerfile.gccgo_build
index e42a593cb..90cdf352f 100644
--- a/docker/Dockerfile.gccgo_build
+++ b/docker/Dockerfile.gccgo_build
@@ -37,6 +37,7 @@ EXPOSE 7333
RUN mkdir -p /data/filerldb2
VOLUME /data
+WORKDIR /data
RUN chmod +x /entrypoint.sh
diff --git a/docker/Dockerfile.go_build b/docker/Dockerfile.go_build
index 3a62cf5a3..c917ec556 100644
--- a/docker/Dockerfile.go_build
+++ b/docker/Dockerfile.go_build
@@ -1,12 +1,13 @@
-FROM amd64/golang:1.17-alpine as builder
+FROM golang:1.18-alpine as builder
RUN apk add git g++ fuse
RUN mkdir -p /go/src/github.com/chrislusf/
RUN git clone https://github.com/chrislusf/seaweedfs /go/src/github.com/chrislusf/seaweedfs
ARG BRANCH=${BRANCH:-master}
+ARG TAGS
RUN cd /go/src/github.com/chrislusf/seaweedfs && git checkout $BRANCH
RUN cd /go/src/github.com/chrislusf/seaweedfs/weed \
&& export LDFLAGS="-X github.com/chrislusf/seaweedfs/weed/util.COMMIT=$(git rev-parse --short HEAD)" \
- && CGO_ENABLED=0 go install -ldflags "-extldflags -static ${LDFLAGS}"
+ && CGO_ENABLED=0 go install -tags "$TAGS" -ldflags "-extldflags -static ${LDFLAGS}"
FROM alpine AS final
LABEL author="Chris Lu"
@@ -36,6 +37,7 @@ EXPOSE 7333
RUN mkdir -p /data/filerldb2
VOLUME /data
+WORKDIR /data
RUN chmod +x /entrypoint.sh
diff --git a/docker/Dockerfile.local b/docker/Dockerfile.local
index 0a85c56f0..947edffda 100644
--- a/docker/Dockerfile.local
+++ b/docker/Dockerfile.local
@@ -26,6 +26,7 @@ EXPOSE 7333
RUN mkdir -p /data/filerldb2
VOLUME /data
+WORKDIR /data
RUN chmod +x /entrypoint.sh
diff --git a/docker/Dockerfile.go_build_large b/docker/Dockerfile.rocksdb_large
index b0433257c..0025eb116 100644
--- a/docker/Dockerfile.go_build_large
+++ b/docker/Dockerfile.rocksdb_large
@@ -1,20 +1,37 @@
-FROM amd64/golang:1.17-alpine as builder
-RUN apk add git g++ fuse
+FROM golang:1.18-buster as builder
+
+RUN apt-get update
+RUN apt-get install -y build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev libzstd-dev
+
+ENV ROCKSDB_VERSION v7.2.2
+
+# build RocksDB
+RUN cd /tmp && \
+ git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb --depth 1 --single-branch --branch $ROCKSDB_VERSION && \
+ cd rocksdb && \
+ PORTABLE=1 make static_lib && \
+ make install-static
+
+ENV CGO_CFLAGS "-I/tmp/rocksdb/include"
+ENV CGO_LDFLAGS "-L/tmp/rocksdb -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd"
+
+# build SeaweedFS
RUN mkdir -p /go/src/github.com/chrislusf/
RUN git clone https://github.com/chrislusf/seaweedfs /go/src/github.com/chrislusf/seaweedfs
ARG BRANCH=${BRANCH:-master}
RUN cd /go/src/github.com/chrislusf/seaweedfs && git checkout $BRANCH
RUN cd /go/src/github.com/chrislusf/seaweedfs/weed \
&& export LDFLAGS="-X github.com/chrislusf/seaweedfs/weed/util.COMMIT=$(git rev-parse --short HEAD)" \
- && CGO_ENABLED=0 go install -tags 5BytesOffset -ldflags "-extldflags -static ${LDFLAGS}"
+ && go install -tags "5BytesOffset rocksdb" -ldflags "-extldflags -static ${LDFLAGS}"
+
FROM alpine AS final
LABEL author="Chris Lu"
COPY --from=builder /go/bin/weed /usr/bin/
RUN mkdir -p /etc/seaweedfs
-COPY --from=builder /go/src/github.com/chrislusf/seaweedfs/docker/filer.toml /etc/seaweedfs/filer.toml
+COPY --from=builder /go/src/github.com/chrislusf/seaweedfs/docker/filer_rocksdb.toml /etc/seaweedfs/filer.toml
COPY --from=builder /go/src/github.com/chrislusf/seaweedfs/docker/entrypoint.sh /entrypoint.sh
-RUN apk add fuse # for weed mount
+RUN apk add fuse snappy gflags
# volume server gprc port
EXPOSE 18080
@@ -33,10 +50,12 @@ EXPOSE 8333
# webdav server http port
EXPOSE 7333
-RUN mkdir -p /data/filerldb2
+RUN mkdir -p /data/filer_rocksdb
VOLUME /data
+WORKDIR /data
+
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
diff --git a/docker/Dockerfile.s3tests b/docker/Dockerfile.s3tests
index 5b6d762de..e55ebadf9 100644
--- a/docker/Dockerfile.s3tests
+++ b/docker/Dockerfile.s3tests
@@ -28,4 +28,4 @@ ENV \
S3TEST_CONF="/s3test.conf"
ENTRYPOINT ["/bin/bash", "-c"]
-CMD ["sleep 10 && exec ./virtualenv/bin/nosetests ${NOSETESTS_OPTIONS-} ${NOSETESTS_ATTR:+-a $NOSETESTS_ATTR} ${NOSETESTS_EXCLUDE:+-e $NOSETESTS_EXCLUDE}"] \ No newline at end of file
+CMD ["sleep 30 && exec ./virtualenv/bin/nosetests ${NOSETESTS_OPTIONS-} ${NOSETESTS_ATTR:+-a $NOSETESTS_ATTR} ${NOSETESTS_EXCLUDE:+-e $NOSETESTS_EXCLUDE}"] \ No newline at end of file
diff --git a/docker/Makefile b/docker/Makefile
index 8efc0ded2..3afea17c1 100644
--- a/docker/Makefile
+++ b/docker/Makefile
@@ -7,12 +7,21 @@ gen: dev
binary:
export SWCOMMIT=$(shell git rev-parse --short HEAD)
export SWLDFLAGS="-X github.com/chrislusf/seaweedfs/weed/util.COMMIT=$(SWCOMMIT)"
- cd ../weed; CGO_ENABLED=0 GOOS=linux go build -ldflags "-extldflags -static $(SWLDFLAGS)"; mv weed ../docker/
+ cd ../weed; CGO_ENABLED=0 GOOS=linux go build -tags "$(tags)" -ldflags "-extldflags -static $(SWLDFLAGS)"; mv weed ../docker/
build: binary
docker build --no-cache -t chrislusf/seaweedfs:local -f Dockerfile.local .
rm ./weed
+go_build: # make go_build tags=elastic,ydb,gocdk,hdfs,5BytesOffset
+ docker build --build-arg TAGS=$(tags) --no-cache -t chrislusf/seaweedfs:go_build -f Dockerfile.go_build .
+
+go_build_large_disk:
+ docker build --build-arg TAGS=large_disk --no-cache -t chrislusf/seaweedfs:large_disk -f Dockerfile.go_build .
+
+build_rocksdb:
+ docker build --no-cache -t chrislusf/seaweedfs:rocksdb -f Dockerfile.rocksdb_large .
+
s3tests_build:
docker build --no-cache -t chrislusf/ceph-s3-tests:local -f Dockerfile.s3tests .
@@ -40,18 +49,38 @@ dev_registry: build
dev_replicate: build
docker-compose -f compose/local-replicate-compose.yml -p seaweedfs up
+dev_auditlog: build
+ docker-compose -f compose/local-auditlog-compose.yml -p seaweedfs up
+
+dev_nextcloud: build
+ docker-compose -f compose/local-nextcloud-compose.yml -p seaweedfs up
+
cluster: build
docker-compose -f compose/local-cluster-compose.yml -p seaweedfs up
2clusters: build
docker-compose -f compose/local-clusters-compose.yml -p seaweedfs up
+2mount: build
+ docker-compose -f compose/local-sync-mount-compose.yml -p seaweedfs up
+
+hashicorp_raft: build
+ docker-compose -f compose/local-hashicorp-raft-compose.yml -p seaweedfs up
+
s3tests: build s3tests_build
docker-compose -f compose/local-s3tests-compose.yml -p seaweedfs up
filer_etcd: build
docker stack deploy -c compose/swarm-etcd.yml fs
+test_etcd: build
+ docker-compose -f compose/test-etcd-filer.yml -p seaweedfs up
+
+test_ydb: tags = ydb
+test_ydb: build
+ export
+ docker-compose -f compose/test-ydb-filer.yml -p seaweedfs up
+
clean:
rm ./weed
@@ -65,4 +94,4 @@ certstrap:
certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" volume01.dev || true
certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" master01.dev || true
certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" filer01.dev || true
- certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" client01.dev || true \ No newline at end of file
+ certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" client01.dev || true
diff --git a/docker/README.md b/docker/README.md
index d6e1f4928..524f5d4d0 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -37,3 +37,8 @@ docker buildx build --pull --push --platform linux/386,linux/amd64,linux/arm64,l
docker buildx stop $BUILDER
```
+## Minio debuging
+```
+mc config host add local http://127.0.0.1:9000 some_access_key1 some_secret_key1
+mc admin trace --all --verbose local
+``` \ No newline at end of file
diff --git a/docker/compose/fluent.json b/docker/compose/fluent.json
new file mode 100644
index 000000000..8b50b0f72
--- /dev/null
+++ b/docker/compose/fluent.json
@@ -0,0 +1,4 @@
+{
+ "fluent_port": 24224,
+ "fluent_host": "fluent"
+} \ No newline at end of file
diff --git a/docker/compose/local-auditlog-compose.yml b/docker/compose/local-auditlog-compose.yml
new file mode 100644
index 000000000..39c997448
--- /dev/null
+++ b/docker/compose/local-auditlog-compose.yml
@@ -0,0 +1,36 @@
+version: '2'
+
+services:
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8333:8333
+ - 9333:9333
+ - 19333:19333
+ - 8084:8080
+ - 18084:18080
+ - 8888:8888
+ - 18888:18888
+ - 8000:8000
+ command: "server -ip=s3 -filer -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8000 -s3.auditLogConfig=/etc/seaweedfs/fluent.json -volume.max=0 -master.volumeSizeLimitMB=8 -volume.preStopSeconds=1"
+ volumes:
+ - ./fluent.json:/etc/seaweedfs/fluent.json
+ - ./s3.json:/etc/seaweedfs/s3.json
+ depends_on:
+ - fluent
+ fluent:
+ image: fluent/fluentd:v1.14
+ ports:
+ - 24224:24224
+ #s3tests:
+ # image: chrislusf/ceph-s3-tests:local
+ # volumes:
+ # - ./s3tests.conf:/opt/s3-tests/s3tests.conf
+ # environment:
+ # S3TEST_CONF: "s3tests.conf"
+ # NOSETESTS_OPTIONS: "--verbose --logging-level=ERROR --with-xunit --failure-detail s3tests_boto3.functional.test_s3"
+ # NOSETESTS_ATTR: "!tagging,!fails_on_aws,!encryption,!bucket-policy,!versioning,!fails_on_rgw,!bucket-policy,!fails_with_subdomain,!policy_status,!object-lock,!lifecycle,!cors,!user-policy"
+ # NOSETESTS_EXCLUDE: "(get_bucket_encryption|put_bucket_encryption|bucket_list_delimiter_basic|bucket_listv2_delimiter_basic|bucket_listv2_encoding_basic|bucket_list_encoding_basic|bucket_list_delimiter_prefix|bucket_listv2_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_alt|bucket_listv2_delimiter_alt|bucket_list_delimiter_prefix_underscore|bucket_list_delimiter_percentage|bucket_listv2_delimiter_percentage|bucket_list_delimiter_whitespace|bucket_listv2_delimiter_whitespace|bucket_list_delimiter_dot|bucket_listv2_delimiter_dot|bucket_list_delimiter_unreadable|bucket_listv2_delimiter_unreadable|bucket_listv2_fetchowner_defaultempty|bucket_listv2_fetchowner_empty|bucket_list_prefix_delimiter_alt|bucket_listv2_prefix_delimiter_alt|bucket_list_prefix_delimiter_prefix_not_exist|bucket_listv2_prefix_delimiter_prefix_not_exist|bucket_list_prefix_delimiter_delimiter_not_exist|bucket_listv2_prefix_delimiter_delimiter_not_exist|bucket_list_prefix_delimiter_prefix_delimiter_not_exist|bucket_listv2_prefix_delimiter_prefix_delimiter_not_exist|bucket_list_maxkeys_none|bucket_listv2_maxkeys_none|bucket_list_maxkeys_invalid|bucket_listv2_continuationtoken_empty|bucket_list_return_data|bucket_list_objects_anonymous|bucket_listv2_objects_anonymous|bucket_notexist|bucketv2_notexist|bucket_delete_nonempty|bucket_concurrent_set_canned_acl|object_write_to_nonexist_bucket|object_requestid_matches_header_on_error|object_set_get_metadata_none_to_good|object_set_get_metadata_none_to_empty|object_set_get_metadata_overwrite_to_empty|post_object_anonymous_request|post_object_authenticated_request|post_object_authenticated_no_content_type|post_object_authenticated_request_bad_access_key|post_object_set_success_code|post_object_set_invalid_success_code|post_object_upload_larger_than_chunk|post_object_set_key_from_filename|post_object_ignored_header|post_object_case_insensitive_condition_fields|post_object_escaped_field_values|post_object_success_redirect_action|post_object_invalid_signature|post_object_invalid_access_key|post_object_missing_policy_condition|post_object_user_specified_header|post_object_request_missing_policy_specified_field|post_object_expired_policy|post_object_invalid_request_field_value|get_object_ifunmodifiedsince_good|put_object_ifmatch_failed|object_raw_get_bucket_gone|object_delete_key_bucket_gone|object_raw_get_bucket_acl|object_raw_get_object_acl|object_raw_response_headers|object_raw_authenticated_bucket_gone|object_raw_get_x_amz_expires_out_max_range|object_raw_get_x_amz_expires_out_positive_range|object_anon_put_write_access|object_raw_put_authenticated_expired|bucket_create_exists|bucket_create_naming_bad_short_one|bucket_create_naming_bad_short_two|bucket_get_location|bucket_acl_default|bucket_acl_canned|bucket_acl_canned_publicreadwrite|bucket_acl_canned_authenticatedread|object_acl_default|object_acl_canned_during_create|object_acl_canned|object_acl_canned_publicreadwrite|object_acl_canned_authenticatedread|object_acl_canned_bucketownerread|object_acl_canned_bucketownerfullcontrol|object_acl_full_control_verify_attributes|bucket_acl_canned_private_to_private|bucket_acl_grant_nonexist_user|bucket_acl_no_grants|bucket_acl_grant_email_not_exist|bucket_acl_revoke_all|bucket_recreate_not_overriding|object_copy_verify_contenttype|object_copy_to_itself_with_metadata|object_copy_not_owned_bucket|object_copy_not_owned_object_bucket|object_copy_retaining_metadata|object_copy_replacing_metadata|multipart_upload_empty|multipart_copy_invalid_range|multipart_copy_special_names|multipart_upload_resend_part|multipart_upload_size_too_small|abort_multipart_upload_not_found|multipart_upload_missing_part|multipart_upload_incorrect_etag|100_continue|ranged_request_invalid_range|ranged_request_empty_object|access_bucket)"
+ # depends_on:
+ # - s3
+ # - fluent \ No newline at end of file
diff --git a/docker/compose/local-cluster-compose.yml b/docker/compose/local-cluster-compose.yml
index 82095ae18..f781244ab 100644
--- a/docker/compose/local-cluster-compose.yml
+++ b/docker/compose/local-cluster-compose.yml
@@ -6,25 +6,37 @@ services:
ports:
- 9333:9333
- 19333:19333
- command: "master -ip=master0 -port=9333 -peers=master0:9333,master1:9334,master2:9335 -mdir=/data/m1"
+ command: "-v=1 master -volumeSizeLimitMB 100 -resumeState=false -ip=master0 -port=9333 -peers=master0:9333,master1:9334,master2:9335 -mdir=/tmp"
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
master1:
image: chrislusf/seaweedfs:local
ports:
- 9334:9334
- 19334:19334
- command: "master -ip=master1 -port=9334 -peers=master0:9333,master1:9334,master2:9335 -mdir=/data/m2"
+ command: "-v=1 master -volumeSizeLimitMB 100 -resumeState=false -ip=master1 -port=9334 -peers=master0:9333,master1:9334,master2:9335 -mdir=/tmp"
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
master2:
image: chrislusf/seaweedfs:local
ports:
- 9335:9335
- 19335:19335
- command: "master -ip=master2 -port=9335 -peers=master0:9333,master1:9334,master2:9335 -mdir=/data/m3"
+ command: "-v=1 master -volumeSizeLimitMB 100 -resumeState=false -ip=master2 -port=9335 -peers=master0:9333,master1:9334,master2:9335 -mdir=/tmp"
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
volume1:
image: chrislusf/seaweedfs:local
ports:
- 8080:8080
- 18080:18080
- command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume1 -publicUrl=localhost:8080 -preStopSeconds=1 -disk=ssd1'
+ command: 'volume -dataCenter=dc1 -rack=v1 -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume1 -publicUrl=localhost:8080 -preStopSeconds=1'
depends_on:
- master0
- master1
@@ -34,7 +46,7 @@ services:
ports:
- 8082:8082
- 18082:18082
- command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8082 -ip=volume2 -publicUrl=localhost:8082 -preStopSeconds=1 -disk=ssd1'
+ command: 'volume -dataCenter=dc2 -rack=v2 -mserver="master0:9333,master1:9334,master2:9335" -port=8082 -ip=volume2 -publicUrl=localhost:8082 -preStopSeconds=1'
depends_on:
- master0
- master1
@@ -44,7 +56,7 @@ services:
ports:
- 8083:8083
- 18083:18083
- command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8083 -ip=volume3 -publicUrl=localhost:8083 -preStopSeconds=1'
+ command: 'volume -dataCenter=dc3 -rack=v3 -mserver="master0:9333,master1:9334,master2:9335" -port=8083 -ip=volume3 -publicUrl=localhost:8083 -preStopSeconds=1'
depends_on:
- master0
- master1
@@ -54,7 +66,8 @@ services:
ports:
- 8888:8888
- 18888:18888
- command: 'filer -master="master0:9333,master1:9334,master2:9335"'
+ - 8111:8111
+ command: 'filer -defaultReplicaPlacement=100 -iam -master="master0:9333,master1:9334,master2:9335"'
depends_on:
- master0
- master1
@@ -65,7 +78,7 @@ services:
image: chrislusf/seaweedfs:local
ports:
- 8333:8333
- command: 's3 -filer="filer:8888"'
+ command: '-v=9 s3 -filer="filer:8888"'
depends_on:
- master0
- master1
diff --git a/docker/compose/local-hashicorp-raft-compose.yml b/docker/compose/local-hashicorp-raft-compose.yml
new file mode 100644
index 000000000..14b5eb57a
--- /dev/null
+++ b/docker/compose/local-hashicorp-raft-compose.yml
@@ -0,0 +1,89 @@
+version: '2'
+
+services:
+ master0:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ command: "-v=4 master -volumeSizeLimitMB 100 -raftHashicorp -ip=master0 -port=9333 -peers=master1:9334,master2:9335 -mdir=/data"
+ volumes:
+ - ./master/0:/data
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
+ master1:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9334:9334
+ - 19334:19334
+ command: "-v=4 master -volumeSizeLimitMB 100 -raftHashicorp -ip=master1 -port=9334 -peers=master0:9333,master2:9335 -mdir=/data"
+ volumes:
+ - ./master/1:/data
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
+ master2:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9335:9335
+ - 19335:19335
+ command: "-v=4 master -volumeSizeLimitMB 100 -raftHashicorp -ip=master2 -port=9335 -peers=master0:9333,master1:9334 -mdir=/data"
+ volumes:
+ - ./master/2:/data
+ environment:
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_2: 2
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
+ volume1:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8080:8080
+ - 18080:18080
+ command: 'volume -dataCenter=dc1 -rack=v1 -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume1 -publicUrl=localhost:8080 -preStopSeconds=1'
+ depends_on:
+ - master0
+ - master1
+ volume2:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8082:8082
+ - 18082:18082
+ command: 'volume -dataCenter=dc2 -rack=v2 -mserver="master0:9333,master1:9334,master2:9335" -port=8082 -ip=volume2 -publicUrl=localhost:8082 -preStopSeconds=1'
+ depends_on:
+ - master0
+ - master1
+ volume3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8083:8083
+ - 18083:18083
+ command: 'volume -dataCenter=dc3 -rack=v3 -mserver="master0:9333,master1:9334,master2:9335" -port=8083 -ip=volume3 -publicUrl=localhost:8083 -preStopSeconds=1'
+ depends_on:
+ - master0
+ - master1
+ filer:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ - 8111:8111
+ command: 'filer -defaultReplicaPlacement=100 -iam -master="master0:9333,master1:9334,master2:9335"'
+ depends_on:
+ - master0
+ - master1
+ - volume1
+ - volume2
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8333:8333
+ command: '-v=9 s3 -ip.bind="s3" -filer="filer:8888"'
+ depends_on:
+ - master0
+ - master1
+ - volume1
+ - volume2
+ - filer \ No newline at end of file
diff --git a/docker/compose/local-nextcloud-compose.yml b/docker/compose/local-nextcloud-compose.yml
new file mode 100644
index 000000000..80c3fca53
--- /dev/null
+++ b/docker/compose/local-nextcloud-compose.yml
@@ -0,0 +1,44 @@
+version: '2'
+
+services:
+ master:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ command: "master -ip=master"
+ volume:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8080:8080
+ - 18080:18080
+ command: "volume -mserver=master:9333 -port=8080 -ip=volume"
+ depends_on:
+ - master
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ - 8333:8333
+ command: '-v 9 filer -master="master:9333" -s3'
+ depends_on:
+ - master
+ - volume
+ nextcloud:
+ image: nextcloud:23.0.5-apache
+ environment:
+ - OBJECTSTORE_S3_HOST=s3
+ - OBJECTSTORE_S3_BUCKET=nextcloud
+ - OBJECTSTORE_S3_KEY=some_access_key1
+ - OBJECTSTORE_S3_SECRET=some_secret_key1
+ - OBJECTSTORE_S3_PORT=8333
+ - OBJECTSTORE_S3_SSL=false
+ - OBJECTSTORE_S3_USEPATH_STYLE=true
+ - SQLITE_DATABASE=nextcloud
+ - NEXTCLOUD_ADMIN_USER=admin
+ - NEXTCLOUD_ADMIN_PASSWORD=admin
+ ports:
+ - 80:80
+ depends_on:
+ - s3 \ No newline at end of file
diff --git a/docker/compose/local-s3tests-compose.yml b/docker/compose/local-s3tests-compose.yml
index 1db67e02b..9176c7bef 100644
--- a/docker/compose/local-s3tests-compose.yml
+++ b/docker/compose/local-s3tests-compose.yml
@@ -24,7 +24,7 @@ services:
- 8888:8888
- 18888:18888
- 8000:8000
- command: 'filer -master="master:9333" -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8000'
+ command: 'filer -master="master:9333" -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8000 -s3.allowEmptyFolder=false -s3.allowDeleteBucketNotEmpty=false'
volumes:
- ./s3.json:/etc/seaweedfs/s3.json
depends_on:
@@ -38,7 +38,7 @@ services:
S3TEST_CONF: "s3tests.conf"
NOSETESTS_OPTIONS: "--verbose --logging-level=ERROR --with-xunit --failure-detail s3tests_boto3.functional.test_s3"
NOSETESTS_ATTR: "!tagging,!fails_on_aws,!encryption,!bucket-policy,!versioning,!fails_on_rgw,!bucket-policy,!fails_with_subdomain,!policy_status,!object-lock,!lifecycle,!cors,!user-policy"
- NOSETESTS_EXCLUDE: "(bucket_list_delimiter_basic|bucket_listv2_delimiter_basic|bucket_listv2_encoding_basic|bucket_list_encoding_basic|bucket_list_delimiter_prefix|bucket_listv2_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_alt|bucket_listv2_delimiter_alt|bucket_list_delimiter_prefix_underscore|bucket_list_delimiter_percentage|bucket_listv2_delimiter_percentage|bucket_list_delimiter_whitespace|bucket_listv2_delimiter_whitespace|bucket_list_delimiter_dot|bucket_listv2_delimiter_dot|bucket_list_delimiter_unreadable|bucket_listv2_delimiter_unreadable|bucket_listv2_fetchowner_defaultempty|bucket_listv2_fetchowner_empty|bucket_list_prefix_delimiter_alt|bucket_listv2_prefix_delimiter_alt|bucket_list_prefix_delimiter_prefix_not_exist|bucket_listv2_prefix_delimiter_prefix_not_exist|bucket_list_prefix_delimiter_delimiter_not_exist|bucket_listv2_prefix_delimiter_delimiter_not_exist|bucket_list_prefix_delimiter_prefix_delimiter_not_exist|bucket_listv2_prefix_delimiter_prefix_delimiter_not_exist|bucket_list_maxkeys_none|bucket_listv2_maxkeys_none|bucket_list_maxkeys_invalid|bucket_listv2_continuationtoken_empty|bucket_list_return_data|bucket_list_objects_anonymous|bucket_listv2_objects_anonymous|bucket_notexist|bucketv2_notexist|bucket_delete_nonempty|bucket_concurrent_set_canned_acl|object_write_to_nonexist_bucket|object_requestid_matches_header_on_error|object_set_get_metadata_none_to_good|object_set_get_metadata_none_to_empty|object_set_get_metadata_overwrite_to_empty|post_object_anonymous_request|post_object_authenticated_request|post_object_authenticated_no_content_type|post_object_authenticated_request_bad_access_key|post_object_set_success_code|post_object_set_invalid_success_code|post_object_upload_larger_than_chunk|post_object_set_key_from_filename|post_object_ignored_header|post_object_case_insensitive_condition_fields|post_object_escaped_field_values|post_object_success_redirect_action|post_object_invalid_signature|post_object_invalid_access_key|post_object_missing_policy_condition|post_object_user_specified_header|post_object_request_missing_policy_specified_field|post_object_expired_policy|post_object_invalid_request_field_value|get_object_ifunmodifiedsince_good|put_object_ifmatch_failed|object_raw_get_bucket_gone|object_delete_key_bucket_gone|object_raw_get_bucket_acl|object_raw_get_object_acl|object_raw_response_headers|object_raw_authenticated_bucket_gone|object_raw_get_x_amz_expires_out_max_range|object_raw_get_x_amz_expires_out_positive_range|object_anon_put_write_access|object_raw_put_authenticated_expired|bucket_create_exists|bucket_create_naming_bad_short_one|bucket_create_naming_bad_short_two|bucket_get_location|bucket_acl_default|bucket_acl_canned|bucket_acl_canned_publicreadwrite|bucket_acl_canned_authenticatedread|object_acl_default|object_acl_canned_during_create|object_acl_canned|object_acl_canned_publicreadwrite|object_acl_canned_authenticatedread|object_acl_canned_bucketownerread|object_acl_canned_bucketownerfullcontrol|object_acl_full_control_verify_attributes|bucket_acl_canned_private_to_private|bucket_acl_grant_nonexist_user|bucket_acl_no_grants|bucket_acl_grant_email_not_exist|bucket_acl_revoke_all|bucket_recreate_not_overriding|object_copy_verify_contenttype|object_copy_to_itself_with_metadata|object_copy_not_owned_bucket|object_copy_not_owned_object_bucket|object_copy_retaining_metadata|object_copy_replacing_metadata|multipart_upload_empty|multipart_copy_invalid_range|multipart_copy_special_names|multipart_upload_resend_part|multipart_upload_size_too_small|abort_multipart_upload_not_found|multipart_upload_missing_part|multipart_upload_incorrect_etag|100_continue|ranged_request_invalid_range|ranged_request_empty_object|access_bucket)"
+ NOSETESTS_EXCLUDE: "(get_bucket_encryption|delete_bucket_encryption|put_bucket_encryption|bucket_list_delimiter_basic|bucket_listv2_delimiter_basic|bucket_listv2_encoding_basic|bucket_list_encoding_basic|bucket_list_delimiter_prefix|bucket_listv2_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_prefix_ends_with_delimiter|bucket_list_delimiter_alt|bucket_listv2_delimiter_alt|bucket_list_delimiter_prefix_underscore|bucket_list_delimiter_percentage|bucket_listv2_delimiter_percentage|bucket_list_delimiter_whitespace|bucket_listv2_delimiter_whitespace|bucket_list_delimiter_dot|bucket_listv2_delimiter_dot|bucket_list_delimiter_unreadable|bucket_listv2_delimiter_unreadable|bucket_listv2_fetchowner_defaultempty|bucket_listv2_fetchowner_empty|bucket_list_prefix_delimiter_alt|bucket_listv2_prefix_delimiter_alt|bucket_list_prefix_delimiter_prefix_not_exist|bucket_listv2_prefix_delimiter_prefix_not_exist|bucket_list_prefix_delimiter_delimiter_not_exist|bucket_listv2_prefix_delimiter_delimiter_not_exist|bucket_list_prefix_delimiter_prefix_delimiter_not_exist|bucket_listv2_prefix_delimiter_prefix_delimiter_not_exist|bucket_list_maxkeys_none|bucket_listv2_maxkeys_none|bucket_list_maxkeys_invalid|bucket_listv2_continuationtoken_empty|bucket_list_return_data|bucket_list_objects_anonymous|bucket_listv2_objects_anonymous|bucket_concurrent_set_canned_acl|object_write_to_nonexist_bucket|object_requestid_matches_header_on_error|object_set_get_metadata_none_to_good|object_set_get_metadata_none_to_empty|object_set_get_metadata_overwrite_to_empty|post_object_anonymous_request|post_object_authenticated_request|post_object_authenticated_no_content_type|post_object_authenticated_request_bad_access_key|post_object_set_success_code|post_object_set_invalid_success_code|post_object_upload_larger_than_chunk|post_object_set_key_from_filename|post_object_ignored_header|post_object_case_insensitive_condition_fields|post_object_escaped_field_values|post_object_success_redirect_action|post_object_invalid_signature|post_object_invalid_access_key|post_object_missing_policy_condition|post_object_user_specified_header|post_object_request_missing_policy_specified_field|post_object_expired_policy|post_object_invalid_request_field_value|get_object_ifunmodifiedsince_good|put_object_ifmatch_failed|object_raw_get_bucket_gone|object_delete_key_bucket_gone|object_raw_get_bucket_acl|object_raw_get_object_acl|object_raw_response_headers|object_raw_authenticated_bucket_gone|object_raw_get_x_amz_expires_out_max_range|object_raw_get_x_amz_expires_out_positive_range|object_anon_put_write_access|object_raw_put_authenticated_expired|bucket_create_exists|bucket_create_naming_bad_short_one|bucket_create_naming_bad_short_two|bucket_get_location|bucket_acl_default|bucket_acl_canned|bucket_acl_canned_publicreadwrite|bucket_acl_canned_authenticatedread|object_acl_default|object_acl_canned_during_create|object_acl_canned|object_acl_canned_publicreadwrite|object_acl_canned_authenticatedread|object_acl_canned_bucketownerread|object_acl_canned_bucketownerfullcontrol|object_acl_full_control_verify_attributes|bucket_acl_canned_private_to_private|bucket_acl_grant_nonexist_user|bucket_acl_no_grants|bucket_acl_grant_email_not_exist|bucket_acl_revoke_all|bucket_recreate_not_overriding|object_copy_verify_contenttype|object_copy_to_itself_with_metadata|object_copy_not_owned_bucket|object_copy_not_owned_object_bucket|object_copy_retaining_metadata|object_copy_replacing_metadata|multipart_upload_empty|multipart_copy_invalid_range|multipart_copy_special_names|multipart_upload_resend_part|multipart_upload_size_too_small|abort_multipart_upload_not_found|multipart_upload_missing_part|100_continue|ranged_request_invalid_range|ranged_request_empty_object|access_bucket|list_multipart_upload_owner|multipart_upload_small)"
depends_on:
- master
- volume
diff --git a/docker/compose/local-sync-mount-compose.yml b/docker/compose/local-sync-mount-compose.yml
new file mode 100644
index 000000000..fec866698
--- /dev/null
+++ b/docker/compose/local-sync-mount-compose.yml
@@ -0,0 +1,21 @@
+version: '3.9'
+services:
+ node1:
+ image: chrislusf/seaweedfs:local
+ command: "server -master -volume -filer"
+ mount1:
+ image: chrislusf/seaweedfs:local
+ privileged: true
+ command: "mount -filer=node1:8888 -dir=/mnt -dirAutoCreate"
+ node2:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 7888:8888
+ command: "server -master -volume -filer"
+ mount2:
+ image: chrislusf/seaweedfs:local
+ privileged: true
+ command: "mount -filer=node2:8888 -dir=/mnt -dirAutoCreate"
+ sync:
+ image: chrislusf/seaweedfs:local
+ command: "-v=4 filer.sync -a=node1:8888 -b=node2:8888 -a.debug -b.debug"
diff --git a/docker/compose/master-cloud.toml b/docker/compose/master-cloud.toml
index 17289c114..6ddb14e12 100644
--- a/docker/compose/master-cloud.toml
+++ b/docker/compose/master-cloud.toml
@@ -28,3 +28,4 @@ sleep_minutes = 17 # sleep minutes between each script execution
region = "us-east-2"
bucket = "volume_bucket" # an existing bucket
endpoint = "http://server2:8333"
+ storage_class = "STANDARD_IA"
diff --git a/docker/compose/test-etcd-filer.yml b/docker/compose/test-etcd-filer.yml
new file mode 100644
index 000000000..400bd0fae
--- /dev/null
+++ b/docker/compose/test-etcd-filer.yml
@@ -0,0 +1,61 @@
+version: '2'
+
+services:
+ etcd:
+ image: quay.io/coreos/etcd:v3.5.4
+ command: "etcd --advertise-client-urls http://etcd:2379 --listen-client-urls http://0.0.0.0:2379"
+ ports:
+ - 2379:2379
+ master:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ command: "master -ip=master -volumeSizeLimitMB=1024"
+ volume:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8080:8080
+ - 18080:18080
+ command: "volume -mserver=master:9333 -port=8080 -ip=volume -max=0 -preStopSeconds=1"
+ depends_on:
+ - master
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ - 8333:8333
+ command: '-v 9 filer -master="master:9333" -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8333'
+ environment:
+ WEED_LEVELDB2_ENABLED: 'false'
+ WEED_ETCD_ENABLED: 'true'
+ WEED_ETCD_SERVERS: "http://etcd:2379"
+ volumes:
+ - ./s3.json:/etc/seaweedfs/s3.json
+ depends_on:
+ - etcd
+ - master
+ - volume
+ registry:
+ image: registry:2
+ environment:
+ REGISTRY_HTTP_ADDR: "0.0.0.0:5001" # seaweedfs s3
+ REGISTRY_LOG_LEVEL: "debug"
+ REGISTRY_STORAGE: "s3"
+ REGISTRY_STORAGE_S3_REGION: "us-east-1"
+ REGISTRY_STORAGE_S3_REGIONENDPOINT: "http://s3:8333"
+ REGISTRY_STORAGE_S3_BUCKET: "registry"
+ REGISTRY_STORAGE_S3_ACCESSKEY: "some_access_key1"
+ REGISTRY_STORAGE_S3_SECRETKEY: "some_secret_key1"
+ REGISTRY_STORAGE_S3_V4AUTH: "true"
+ REGISTRY_STORAGE_S3_SECURE: "false"
+ REGISTRY_STORAGE_S3_SKIPVERIFY: "true"
+ REGISTRY_STORAGE_S3_ROOTDIRECTORY: "/"
+ REGISTRY_STORAGE_DELETE_ENABLED: "true"
+ REGISTRY_STORAGE_REDIRECT_DISABLE: "true"
+ REGISTRY_VALIDATION_DISABLED: "true"
+ ports:
+ - 5001:5001
+ depends_on:
+ - s3
diff --git a/docker/compose/test-ydb-filer.yml b/docker/compose/test-ydb-filer.yml
new file mode 100644
index 000000000..c0c31fe5b
--- /dev/null
+++ b/docker/compose/test-ydb-filer.yml
@@ -0,0 +1,35 @@
+version: '2'
+
+services:
+ ydb:
+ image: cr.yandex/yc/yandex-docker-local-ydb
+ ports:
+ - 2135:2135
+ - 8765:8765
+ - 2136:2136
+ environment:
+ - YDB_DEFAULT_LOG_LEVEL=DEBUG
+ - GRPC_TLS_PORT=2135
+ - GRPC_PORT=2136
+ - MON_PORT=8765
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ - 8888:8888
+ - 8000:8000
+ - 18888:18888
+ command: "server -ip=s3 -filer -master.volumeSizeLimitMB=16 -volume.max=0 -volume -volume.preStopSeconds=1 -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8000 -s3.allowEmptyFolder=false -s3.allowDeleteBucketNotEmpty=false"
+ volumes:
+ - ./s3.json:/etc/seaweedfs/s3.json
+ environment:
+ WEED_LEVELDB2_ENABLED: "false"
+ WEED_YDB_ENABLED: "true"
+ WEED_YDB_DSN: "grpc://ydb:2136/?database=local"
+ WEED_YDB_PREFIX: "seaweedfs"
+ YDB_ANONYMOUS_CREDENTIALS: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_1: 1
+ WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
+ depends_on:
+ - ydb \ No newline at end of file
diff --git a/docker/compose/tls.env b/docker/compose/tls.env
index a82954c4f..3a52fce52 100644
--- a/docker/compose/tls.env
+++ b/docker/compose/tls.env
@@ -11,4 +11,6 @@ WEED_GRPC_CLIENT_KEY=/etc/seaweedfs/tls/client01.dev.key
WEED_GRPC_MASTER_ALLOWED_COMMONNAMES="volume01.dev,master01.dev,filer01.dev,client01.dev"
WEED_GRPC_VOLUME_ALLOWED_COMMONNAMES="volume01.dev,master01.dev,filer01.dev,client01.dev"
WEED_GRPC_FILER_ALLOWED_COMMONNAMES="volume01.dev,master01.dev,filer01.dev,client01.dev"
-WEED_GRPC_CLIENT_ALLOWED_COMMONNAMES="volume01.dev,master01.dev,filer01.dev,client01.dev" \ No newline at end of file
+WEED_GRPC_CLIENT_ALLOWED_COMMONNAMES="volume01.dev,master01.dev,filer01.dev,client01.dev"
+#GRPC_GO_LOG_SEVERITY_LEVEL=info
+#GRPC_GO_LOG_VERBOSITY_LEVEL=2 \ No newline at end of file
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index a5a240575..80a7fe586 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -24,7 +24,7 @@ case "$1" in
'master')
ARGS="-mdir=/data -volumePreallocate -volumeSizeLimitMB=1024"
shift
- exec /usr/bin/weed master $ARGS $@
+ exec /usr/bin/weed -logtostderr=true master $ARGS $@
;;
'volume')
@@ -33,7 +33,7 @@ case "$1" in
ARGS="-dir=/data"
fi
shift
- exec /usr/bin/weed volume $ARGS $@
+ exec /usr/bin/weed -logtostderr=true volume $ARGS $@
;;
'server')
@@ -42,31 +42,27 @@ case "$1" in
ARGS="-dir=/data -master.volumePreallocate -master.volumeSizeLimitMB=1024"
fi
shift
- exec /usr/bin/weed server $ARGS $@
+ exec /usr/bin/weed -logtostderr=true server $ARGS $@
;;
'filer')
ARGS=""
shift
- exec /usr/bin/weed filer $ARGS $@
+ 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 s3 $ARGS $@
+ exec /usr/bin/weed -logtostderr=true s3 $ARGS $@
;;
- 'cronjob')
- MASTER=${WEED_MASTER-localhost:9333}
- FIX_REPLICATION_CRON_SCHEDULE=${CRON_SCHEDULE-*/7 * * * * *}
- echo "$FIX_REPLICATION_CRON_SCHEDULE" 'echo "lock; volume.fix.replication; unlock" | weed shell -master='$MASTER > /crontab
- BALANCING_CRON_SCHEDULE=${CRON_SCHEDULE-25 * * * * *}
- echo "$BALANCING_CRON_SCHEDULE" 'echo "lock; volume.balance -collection ALL_COLLECTIONS -force; unlock" | weed shell -master='$MASTER >> /crontab
- echo "Running Crontab:"
- cat /crontab
- exec supercronic /crontab
- ;;
+ '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 $@
;;
diff --git a/docker/filer_rocksdb.toml b/docker/filer_rocksdb.toml
new file mode 100644
index 000000000..c1c74a64e
--- /dev/null
+++ b/docker/filer_rocksdb.toml
@@ -0,0 +1,3 @@
+[rocksdb]
+enabled = true
+dir = "/data/filer_rocksdb"
diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml
index 34f669d56..2f0ead441 100644
--- a/docker/prometheus/prometheus.yml
+++ b/docker/prometheus/prometheus.yml
@@ -8,6 +8,7 @@ scrape_configs:
static_configs:
- targets:
- 'prometheus:9090'
+ - 'master:9324'
- 'volume:9325'
- 'filer:9326'
- 's3:9327' \ No newline at end of file
diff --git a/docker/seaweedfs-compose.yml b/docker/seaweedfs-compose.yml
index f7d02a105..cce1c39ef 100644
--- a/docker/seaweedfs-compose.yml
+++ b/docker/seaweedfs-compose.yml
@@ -6,14 +6,15 @@ services:
ports:
- 9333:9333
- 19333:19333
- command: "master -ip=master"
+ - 9324:9324
+ command: "master -ip=master -ip.bind=0.0.0.0 -metricsPort=9324"
volume:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8080:8080
- 18080:18080
- 9325:9325
- command: 'volume -mserver="master:9333" -port=8080 -metricsPort=9325'
+ command: 'volume -mserver="master:9333" -ip.bind=0.0.0.0 -port=8080 -metricsPort=9325'
depends_on:
- master
filer:
@@ -22,28 +23,18 @@ services:
- 8888:8888
- 18888:18888
- 9326:9326
- command: 'filer -master="master:9333" -metricsPort=9326'
+ command: 'filer -master="master:9333" -ip.bind=0.0.0.0 -metricsPort=9326'
tty: true
stdin_open: true
depends_on:
- master
- volume
- cronjob:
- image: chrislusf/seaweedfs # use a remote image
- command: 'cronjob'
- environment:
- # Run re-replication every 2 minutes
- CRON_SCHEDULE: '*/2 * * * * *' # Default: '*/5 * * * * *'
- WEED_MASTER: master:9333 # Default: localhost:9333
- depends_on:
- - master
- - volume
s3:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8333:8333
- 9327:9327
- command: 's3 -filer="filer:8888" -metricsPort=9327'
+ command: 's3 -filer="filer:8888" -ip.bind=0.0.0.0 -metricsPort=9327'
depends_on:
- master
- volume
diff --git a/docker/seaweedfs.sql b/docker/seaweedfs.sql
index 38ebc575c..a27eb7081 100644
--- a/docker/seaweedfs.sql
+++ b/docker/seaweedfs.sql
@@ -1,6 +1,6 @@
CREATE DATABASE IF NOT EXISTS seaweedfs;
CREATE USER IF NOT EXISTS 'seaweedfs'@'%' IDENTIFIED BY 'secret';
-GRANT ALL PRIVILEGES ON seaweedfs_fast.* TO 'seaweedfs'@'%';
+GRANT ALL PRIVILEGES ON seaweedfs.* TO 'seaweedfs'@'%';
FLUSH PRIVILEGES;
USE seaweedfs;
CREATE TABLE IF NOT EXISTS filemeta (