aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile2
-rw-r--r--docker/Dockerfile.go_build5
-rw-r--r--docker/Dockerfile.go_build_large5
-rw-r--r--docker/Dockerfile.local3
-rw-r--r--docker/Makefile20
-rw-r--r--docker/compose/local-cluster-compose.yml (renamed from docker/local-cluster-compose.yml)30
-rw-r--r--docker/compose/local-clusters-compose.yml23
-rw-r--r--docker/compose/local-dev-compose.yml (renamed from docker/local-dev-compose.yml)13
-rw-r--r--docker/compose/local-k8s-compose.yml94
-rw-r--r--docker/compose/local-mount-compose.yml46
-rw-r--r--docker/compose/local-registry-compose.yml (renamed from docker/local-registry-compose.yml)0
-rw-r--r--docker/compose/local-replicate-compose.yml61
-rw-r--r--docker/compose/swarm-etcd.yml84
-rw-r--r--docker/local-k8s-compose.yml65
-rw-r--r--docker/nginx/proxy.conf30
-rw-r--r--docker/notification.toml17
-rw-r--r--docker/prometheus/prometheus.yml13
-rw-r--r--docker/replication.toml11
-rw-r--r--docker/seaweedfs-compose.yml27
-rw-r--r--docker/seaweedfs-dev-compose.yml9
20 files changed, 479 insertions, 79 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index be7414d0b..528a52609 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -37,6 +37,8 @@ EXPOSE 19333
EXPOSE 9333
# s3 server http port
EXPOSE 8333
+# webdav server http port
+EXPOSE 7333
RUN mkdir -p /data/filerldb2
diff --git a/docker/Dockerfile.go_build b/docker/Dockerfile.go_build
index 726046b56..64105ee29 100644
--- a/docker/Dockerfile.go_build
+++ b/docker/Dockerfile.go_build
@@ -1,5 +1,5 @@
FROM frolvlad/alpine-glibc as builder
-RUN apk add git go g++
+RUN apk add git go 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}
@@ -14,6 +14,7 @@ COPY --from=builder /root/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/entrypoint.sh /entrypoint.sh
+RUN apk add fuse # for weed mount
# volume server gprc port
EXPOSE 18080
@@ -29,6 +30,8 @@ EXPOSE 19333
EXPOSE 9333
# s3 server http port
EXPOSE 8333
+# webdav server http port
+EXPOSE 7333
RUN mkdir -p /data/filerldb2
diff --git a/docker/Dockerfile.go_build_large b/docker/Dockerfile.go_build_large
index 8fc85e868..39f45cbde 100644
--- a/docker/Dockerfile.go_build_large
+++ b/docker/Dockerfile.go_build_large
@@ -1,5 +1,5 @@
FROM frolvlad/alpine-glibc as builder
-RUN apk add git go g++
+RUN apk add git go 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}
@@ -14,6 +14,7 @@ COPY --from=builder /root/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/entrypoint.sh /entrypoint.sh
+RUN apk add fuse # for weed mount
# volume server gprc port
EXPOSE 18080
@@ -29,6 +30,8 @@ EXPOSE 19333
EXPOSE 9333
# s3 server http port
EXPOSE 8333
+# webdav server http port
+EXPOSE 7333
RUN mkdir -p /data/filerldb2
diff --git a/docker/Dockerfile.local b/docker/Dockerfile.local
index 693d8a952..0a85c56f0 100644
--- a/docker/Dockerfile.local
+++ b/docker/Dockerfile.local
@@ -4,6 +4,7 @@ COPY ./weed /usr/bin/
RUN mkdir -p /etc/seaweedfs
COPY ./filer.toml /etc/seaweedfs/filer.toml
COPY ./entrypoint.sh /entrypoint.sh
+RUN apk add fuse # for weed mount
# volume server grpc port
EXPOSE 18080
@@ -19,6 +20,8 @@ EXPOSE 19333
EXPOSE 9333
# s3 server http port
EXPOSE 8333
+# webdav server http port
+EXPOSE 7333
RUN mkdir -p /data/filerldb2
diff --git a/docker/Makefile b/docker/Makefile
index c2e9a12e7..b402147ed 100644
--- a/docker/Makefile
+++ b/docker/Makefile
@@ -10,16 +10,28 @@ build:
rm ./weed
dev: build
- docker-compose -f local-dev-compose.yml -p seaweedfs up
+ docker-compose -f compose/local-dev-compose.yml -p seaweedfs up
+
+dev_mount: build
+ docker-compose -f compose/local-mount-compose.yml -p seaweedfs up
k8s: build
- docker-compose -f local-k8s-compose.yml -p seaweedfs up
+ docker-compose -f compose/local-k8s-compose.yml -p seaweedfs up
dev_registry: build
- docker-compose -f local-registry-compose.yml -p seaweedfs up
+ docker-compose -f compose/local-registry-compose.yml -p seaweedfs up
+
+dev_replicate: build
+ docker-compose -f compose/local-replicate-compose.yml -p seaweedfs up
cluster: build
- docker-compose -f local-cluster-compose.yml -p seaweedfs up
+ docker-compose -f compose/local-cluster-compose.yml -p seaweedfs up
+
+2clusters: build
+ docker-compose -f compose/local-clusters-compose.yml -p seaweedfs up
+
+filer_etcd: build
+ docker stack deploy -c compose/swarm-etcd.yml fs
clean:
rm ./weed
diff --git a/docker/local-cluster-compose.yml b/docker/compose/local-cluster-compose.yml
index bf12c4639..89a1ed0cb 100644
--- a/docker/local-cluster-compose.yml
+++ b/docker/compose/local-cluster-compose.yml
@@ -19,12 +19,32 @@ services:
- 9335:9335
- 19335:19335
command: "master -ip=master2 -port=9335 -peers=master0:9333,master1:9334,master2:9335 -mdir=/data/m3"
- volume:
+ volume1:
image: chrislusf/seaweedfs:local
ports:
- 8080:8080
- 18080:18080
- command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume -publicUrl=localhost:8080'
+ command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8080 -ip=volume1 -publicUrl=localhost:8080'
+ depends_on:
+ - master0
+ - master1
+ - master2
+ volume2:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8082:8082
+ - 18082:18082
+ command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8082 -ip=volume2 -publicUrl=localhost:8082'
+ depends_on:
+ - master0
+ - master1
+ - master2
+ volume3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8083:8083
+ - 18083:18083
+ command: 'volume -mserver="master0:9333,master1:9334,master2:9335" -port=8083 -ip=volume3 -publicUrl=localhost:8083'
depends_on:
- master0
- master1
@@ -39,7 +59,8 @@ services:
- master0
- master1
- master2
- - volume
+ - volume1
+ - volume2
s3:
image: chrislusf/seaweedfs:local
ports:
@@ -49,5 +70,6 @@ services:
- master0
- master1
- master2
- - volume
+ - volume1
+ - volume2
- filer
diff --git a/docker/compose/local-clusters-compose.yml b/docker/compose/local-clusters-compose.yml
new file mode 100644
index 000000000..e813ca35f
--- /dev/null
+++ b/docker/compose/local-clusters-compose.yml
@@ -0,0 +1,23 @@
+version: '2'
+
+services:
+ server1:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ - 8084:8080
+ - 18084:18080
+ - 8888:8888
+ - 18888:18888
+ command: "server -ip=server1 -filer -volume.max=0 -master.volumeSizeLimitMB=1024 -volume.preStopSeconds=1"
+ server2:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9334:9333
+ - 19334:19333
+ - 8085:8080
+ - 18085:18080
+ - 8889:8888
+ - 18889:18888
+ command: "server -ip=server2 -filer -volume.max=0 -master.volumeSizeLimitMB=1024 -volume.preStopSeconds=1"
diff --git a/docker/local-dev-compose.yml b/docker/compose/local-dev-compose.yml
index f6fd0f4ce..18cccab3e 100644
--- a/docker/local-dev-compose.yml
+++ b/docker/compose/local-dev-compose.yml
@@ -12,7 +12,7 @@ services:
ports:
- 8080:8080
- 18080:18080
- command: "volume -mserver=master:9333 -port=8080 -ip=volume"
+ command: "volume -mserver=master:9333 -port=8080 -ip=volume -preStopSeconds=1"
depends_on:
- master
filer:
@@ -33,3 +33,14 @@ services:
- master
- volume
- filer
+ mount:
+ image: chrislusf/seaweedfs:local
+ privileged: true
+ cap_add:
+ - SYS_ADMIN
+ mem_limit: 4096m
+ command: '-v=4 mount -filer="filer:8888" -dirAutoCreate -dir=/mnt/seaweedfs -cacheCapacityMB=100 -concurrentWriters=128'
+ depends_on:
+ - master
+ - volume
+ - filer
diff --git a/docker/compose/local-k8s-compose.yml b/docker/compose/local-k8s-compose.yml
new file mode 100644
index 000000000..9a25465c4
--- /dev/null
+++ b/docker/compose/local-k8s-compose.yml
@@ -0,0 +1,94 @@
+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
+ mysql:
+ image: percona/percona-server:5.7
+ ports:
+ - 3306:3306
+ volumes:
+ - ./seaweedfs.sql:/docker-entrypoint-initdb.d/seaweedfs.sql
+ environment:
+ - MYSQL_ROOT_PASSWORD=secret
+ - MYSQL_DATABASE=seaweedfs
+ - MYSQL_PASSWORD=secret
+ - MYSQL_USER=seaweedfs
+ filer:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ environment:
+ - WEED_MYSQL_HOSTNAME=mysql
+ - WEED_MYSQL_PORT=3306
+ - WEED_MYSQL_DATABASE=seaweedfs
+ - WEED_MYSQL_USERNAME=seaweedfs
+ - WEED_MYSQL_PASSWORD=secret
+ - WEED_MYSQL_ENABLED=true
+ - WEED_MYSQL_CONNECTION_MAX_IDLE=5
+ - WEED_MYSQL_CONNECTION_MAX_OPEN=75
+ # "refresh" connection every 10 minutes, eliminating mysql closing "old" connections
+ - WEED_MYSQL_CONNECTION_MAX_LIFETIME_SECONDS=600
+ # enable usage of memsql as filer backend
+ - WEED_MYSQL_INTERPOLATEPARAMS=true
+ - WEED_LEVELDB2_ENABLED=false
+ command: '-v 9 filer -master="master:9333"'
+ depends_on:
+ - master
+ - volume
+ - mysql
+ ingress:
+ image: jwilder/nginx-proxy:alpine
+ ports:
+ - "80:80"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock:ro
+ - ./nginx/proxy.conf:/etc/nginx/proxy.conf
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8333:8333
+ command: '-v 9 s3 -filer="filer:8888"'
+ depends_on:
+ - master
+ - volume
+ - filer
+ environment:
+ - VIRTUAL_HOST=ingress
+ - VIRTUAL_PORT=8333
+ 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://ingress"
+ 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
+ - ingress \ No newline at end of file
diff --git a/docker/compose/local-mount-compose.yml b/docker/compose/local-mount-compose.yml
new file mode 100644
index 000000000..4361d6d99
--- /dev/null
+++ b/docker/compose/local-mount-compose.yml
@@ -0,0 +1,46 @@
+version: '2'
+
+services:
+ master:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 9333:9333
+ - 19333:19333
+ command: "master -ip=master"
+ volume:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 7455:8080
+ - 9325:9325
+ command: 'volume -mserver="master:9333" -port=8080 -metricsPort=9325 -preStopSeconds=1 -publicUrl=localhost:7455'
+ depends_on:
+ - master
+ filer:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ - 9326:9326
+ command: 'filer -master="master:9333" -metricsPort=9326'
+ tty: true
+ stdin_open: true
+ depends_on:
+ - master
+ - volume
+ mount_1:
+ image: chrislusf/seaweedfs:local
+ privileged: true
+ entrypoint: '/bin/sh -c "mkdir -p t1 && mkdir -p cache/t1 && weed -v=4 mount -filer=filer:8888 -cacheDir=./cache/t1 -dir=./t1 -filer.path=/c1" -volumeServerAccess=filerProxy'
+ depends_on:
+ - master
+ - volume
+ - filer
+ mount_2:
+ image: chrislusf/seaweedfs:local
+ privileged: true
+ entrypoint: '/bin/sh -c "mkdir -p t2 && mkdir -p cache/t2 && weed -v=4 mount -filer=filer:8888 -cacheDir=./cache/t2 -dir=./t2 -filer.path=/c1" -volumeServerAcess=publicUrl'
+ depends_on:
+ - master
+ - volume
+ - filer
+ - mount_1
diff --git a/docker/local-registry-compose.yml b/docker/compose/local-registry-compose.yml
index 7f3672cd0..7f3672cd0 100644
--- a/docker/local-registry-compose.yml
+++ b/docker/compose/local-registry-compose.yml
diff --git a/docker/compose/local-replicate-compose.yml b/docker/compose/local-replicate-compose.yml
new file mode 100644
index 000000000..8240d45a7
--- /dev/null
+++ b/docker/compose/local-replicate-compose.yml
@@ -0,0 +1,61 @@
+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 -preStopSeconds=1"
+ depends_on:
+ - master
+ filer:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8888:8888
+ - 18888:18888
+ command: '-v=9 filer -master="master:9333"'
+ restart: on-failure
+ volumes:
+ - ./notification.toml:/etc/seaweedfs/notification.toml
+ depends_on:
+ - master
+ - volume
+ - rabbitmq
+ - replicate
+ environment:
+ RABBIT_SERVER_URL: "amqp://guest:guest@rabbitmq:5672/"
+ replicate:
+ image: chrislusf/seaweedfs:local
+ command: '-v=9 filer.replicate'
+ restart: on-failure
+ volumes:
+ - ./notification.toml:/etc/seaweedfs/notification.toml
+ - ./replication.toml:/etc/seaweedfs/replication.toml
+ depends_on:
+ - rabbitmq
+ environment:
+ RABBIT_SERVER_URL: "amqp://guest:guest@rabbitmq:5672/"
+ s3:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - 8333:8333
+ command: 's3 -filer="filer:8888"'
+ depends_on:
+ - master
+ - volume
+ - filer
+ rabbitmq:
+ image: rabbitmq:3.8.10-management-alpine
+ ports:
+ - 5672:5672
+ - 15671:15671
+ - 15672:15672
+ environment:
+ RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbit log_levels [{connection,error},{queue,debug}]" \ No newline at end of file
diff --git a/docker/compose/swarm-etcd.yml b/docker/compose/swarm-etcd.yml
new file mode 100644
index 000000000..186b24790
--- /dev/null
+++ b/docker/compose/swarm-etcd.yml
@@ -0,0 +1,84 @@
+# 2021-01-30 16:25:30
+version: '3.8'
+
+services:
+
+ etcd:
+ image: gasparekatapy/etcd
+ networks:
+ - net
+ deploy:
+ mode: replicated
+ replicas: 3
+
+ master:
+ image: chrislusf/seaweedfs:local
+ environment:
+ WEED_MASTER_FILER_DEFAULT: "filer:8888"
+ WEED_MASTER_SEQUENCER_TYPE: "raft"
+ ports:
+ - "9333:9333"
+ - "19333:19333"
+ networks:
+ - net
+ command:
+ - 'master'
+ - '-resumeState=true'
+ - '-ip=master'
+ - '-port=9333'
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ filer:
+ image: chrislusf/seaweedfs:local
+ environment:
+ WEED_LEVELDB2_ENABLED: "false"
+ WEED_ETCD_ENABLED: "true"
+ WEED_ETCD_SERVERS: "etcd:2379"
+ ports:
+ - target: 8888
+ published: 8888
+ protocol: tcp
+ mode: host
+ - target: 18888
+ published: 18888
+ protocol: tcp
+ mode: host
+ networks:
+ - net
+ command:
+ - 'filer'
+ - '-ip=filer'
+ - '-port=8888'
+ - '-port.readonly=28888'
+ - '-master=master:9333'
+ - '-disableDirListing=true'
+ deploy:
+ mode: replicated
+ replicas: 1
+
+ volume:
+ image: chrislusf/seaweedfs:local
+ ports:
+ - target: 8080
+ published: 8080
+ protocol: tcp
+ mode: host
+ - target: 18080
+ published: 18080
+ protocol: tcp
+ mode: host
+ networks:
+ - net
+ command:
+ - 'volume'
+ - '-mserver=master:9333'
+ - '-port=8080'
+ deploy:
+ mode: global
+
+ ###########################################################################
+
+networks:
+ net:
diff --git a/docker/local-k8s-compose.yml b/docker/local-k8s-compose.yml
deleted file mode 100644
index 0dda89ca4..000000000
--- a/docker/local-k8s-compose.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-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
- mysql:
- image: percona/percona-server:5.7
- ports:
- - 3306:3306
- volumes:
- - ./seaweedfs.sql:/docker-entrypoint-initdb.d/seaweedfs.sql
- environment:
- - MYSQL_ROOT_PASSWORD=secret
- - MYSQL_DATABASE=seaweedfs
- - MYSQL_PASSWORD=secret
- - MYSQL_USER=seaweedfs
- filer:
- image: chrislusf/seaweedfs:local
- ports:
- - 8888:8888
- - 18888:18888
- environment:
- - WEED_MYSQL_HOSTNAME=mysql
- - WEED_MYSQL_PORT=3306
- - WEED_MYSQL_DATABASE=seaweedfs
- - WEED_MYSQL_USERNAME=seaweedfs
- - WEED_MYSQL_PASSWORD=secret
- - WEED_MYSQL_ENABLED=true
- - WEED_LEVELDB2_ENABLED=false
- command: 'filer -master="master:9333"'
- depends_on:
- - master
- - volume
- - mysql
- ingress:
- image: jwilder/nginx-proxy
- ports:
- - "80:80"
- volumes:
- - /var/run/docker.sock:/tmp/docker.sock:ro
- - /tmp/nginx:/etc/nginx/conf.d
- s3:
- image: chrislusf/seaweedfs:local
- ports:
- - 8333:8333
- command: 's3 -filer="filer:8888"'
- depends_on:
- - master
- - volume
- - filer
- environment:
- - VIRTUAL_HOST=s3
- - VIRTUAL_PORT=8333 \ No newline at end of file
diff --git a/docker/nginx/proxy.conf b/docker/nginx/proxy.conf
new file mode 100644
index 000000000..59ff30ce2
--- /dev/null
+++ b/docker/nginx/proxy.conf
@@ -0,0 +1,30 @@
+# HTTP 1.1 support
+proxy_http_version 1.1;
+#proxy_buffering off;
+proxy_set_header Host $http_host;
+proxy_set_header Upgrade $http_upgrade;
+proxy_set_header Connection $proxy_connection;
+proxy_set_header X-Real-IP $remote_addr;
+proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
+proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
+proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
+
+# Mitigate httpoxy attack (see README for details)
+proxy_set_header Proxy "";
+
+# aws default max_concurrent_requests 10
+# aws default multipart_threshold 8MB
+proxy_buffering on; # GET buffering or “X-Accel-Buffering” enables or disables buffering of a response;
+proxy_buffers 64 1m; # buffers used for reading a response from the proxied server, for a single connection
+proxy_buffer_size 8k; # maximum size of the data that nginx can receive from the server at a time is set
+proxy_busy_buffers_size 2m;
+
+proxy_request_buffering on; # PUT buffering
+client_body_buffer_size 64m; # buffer size for reading client request body
+client_max_body_size 64m;
+
+proxy_next_upstream error timeout non_idempotent http_500; # PUT request should be passed to the next server:
+proxy_connect_timeout 200ms;
+proxy_read_timeout 3s; #timeout is set only between two successive read operations
+proxy_send_timeout 3s; #timeout is set only between two successive write operations
diff --git a/docker/notification.toml b/docker/notification.toml
new file mode 100644
index 000000000..dcd5f2c6f
--- /dev/null
+++ b/docker/notification.toml
@@ -0,0 +1,17 @@
+[notification.log]
+# this is only for debugging perpose and does not work with "weed filer.replicate"
+enabled = false
+
+
+[notification.gocdk_pub_sub]
+# The Go Cloud Development Kit (https://gocloud.dev).
+# PubSub API (https://godoc.org/gocloud.dev/pubsub).
+# Supports AWS SNS/SQS, Azure Service Bus, Google PubSub, NATS and RabbitMQ.
+enabled = true
+# This URL will Dial the RabbitMQ server at the URL in the environment
+# variable RABBIT_SERVER_URL and open the exchange "myexchange".
+# The exchange must have already been created by some other means, like
+# the RabbitMQ management plugin. Сreate myexchange of type fanout and myqueue then
+# create binding myexchange => myqueue
+topic_url = "rabbit://swexchange"
+sub_url = "rabbit://swqueue" \ No newline at end of file
diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml
new file mode 100644
index 000000000..34f669d56
--- /dev/null
+++ b/docker/prometheus/prometheus.yml
@@ -0,0 +1,13 @@
+global:
+ scrape_interval: 30s
+ scrape_timeout: 10s
+
+scrape_configs:
+ - job_name: services
+ metrics_path: /metrics
+ static_configs:
+ - targets:
+ - 'prometheus:9090'
+ - 'volume:9325'
+ - 'filer:9326'
+ - 's3:9327' \ No newline at end of file
diff --git a/docker/replication.toml b/docker/replication.toml
new file mode 100644
index 000000000..833bb1692
--- /dev/null
+++ b/docker/replication.toml
@@ -0,0 +1,11 @@
+[source.filer]
+enabled = true
+grpcAddress = "filer:18888"
+# all files under this directory tree are replicated.
+# this is not a directory on your hard drive, but on your filer.
+# i.e., all files with this "prefix" are sent to notification message queue.
+directory = "/buckets"
+
+[sink.local_incremental]
+enabled = true
+directory = "/data" \ No newline at end of file
diff --git a/docker/seaweedfs-compose.yml b/docker/seaweedfs-compose.yml
index 70d005017..f7d02a105 100644
--- a/docker/seaweedfs-compose.yml
+++ b/docker/seaweedfs-compose.yml
@@ -12,7 +12,8 @@ services:
ports:
- 8080:8080
- 18080:18080
- command: 'volume -mserver="master:9333" -port=8080'
+ - 9325:9325
+ command: 'volume -mserver="master:9333" -port=8080 -metricsPort=9325'
depends_on:
- master
filer:
@@ -20,7 +21,8 @@ services:
ports:
- 8888:8888
- 18888:18888
- command: 'filer -master="master:9333"'
+ - 9326:9326
+ command: 'filer -master="master:9333" -metricsPort=9326'
tty: true
stdin_open: true
depends_on:
@@ -40,8 +42,27 @@ services:
image: chrislusf/seaweedfs # use a remote image
ports:
- 8333:8333
- command: 's3 -filer="filer:8888"'
+ - 9327:9327
+ command: 's3 -filer="filer:8888" -metricsPort=9327'
depends_on:
- master
- volume
- filer
+ webdav:
+ image: chrislusf/seaweedfs # use a remote image
+ ports:
+ - 7333:7333
+ command: 'webdav -filer="filer:8888"'
+ depends_on:
+ - master
+ - volume
+ - filer
+ prometheus:
+ image: prom/prometheus:v2.21.0
+ ports:
+ - 9000:9090
+ volumes:
+ - ./prometheus:/etc/prometheus
+ command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
+ depends_on:
+ - s3
diff --git a/docker/seaweedfs-dev-compose.yml b/docker/seaweedfs-dev-compose.yml
index 75801102e..2382fb17d 100644
--- a/docker/seaweedfs-dev-compose.yml
+++ b/docker/seaweedfs-dev-compose.yml
@@ -33,3 +33,12 @@ services:
- master
- volume
- filer
+ webdav:
+ image: chrislusf/seaweedfs:dev # use a remote dev image
+ ports:
+ - 7333:7333
+ command: 'webdav -filer="filer:8888"'
+ depends_on:
+ - master
+ - volume
+ - filer