aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorbingoohuang <bingoo.huang@gmail.com>2019-07-16 11:13:23 +0800
committerGitHub <noreply@github.com>2019-07-16 11:13:23 +0800
commitd19bbee98d89ec6cd603572bd9c5d55749610e61 (patch)
tree8d760dcee4dfcb4404af90b7d5e64def4549b4cc /docker
parent01060c992591f412b0d5e180bde29991747a9462 (diff)
parent5b5e443d5b9985fd77f3d5470f1d5885a88bf2b9 (diff)
downloadseaweedfs-d19bbee98d89ec6cd603572bd9c5d55749610e61.tar.xz
seaweedfs-d19bbee98d89ec6cd603572bd9c5d55749610e61.zip
keep update from original (#1)
keep update from original
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile13
-rw-r--r--docker/Dockerfile.go_build2
-rwxr-xr-xdocker/entrypoint.sh13
-rw-r--r--docker/filer.toml4
-rw-r--r--docker/seaweedfs-compose.yml10
5 files changed, 38 insertions, 4 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index c7a343111..38117a3dc 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,9 +1,20 @@
FROM frolvlad/alpine-glibc
+# Supercronic install settings
+ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.8/supercronic-linux-amd64 \
+ SUPERCRONIC=supercronic-linux-amd64 \
+ SUPERCRONIC_SHA1SUM=be43e64c45acd6ec4fce5831e03759c89676a0ea
+
+# Install SeaweedFS and Supercronic ( for cron job mode )
# Tried to use curl only (curl -o /tmp/linux_amd64.tar.gz ...), however it turned out that the following tar command failed with "gzip: stdin: not in gzip format"
RUN apk add --no-cache --virtual build-dependencies --update wget curl ca-certificates && \
wget -P /tmp https://github.com/$(curl -s -L https://github.com/chrislusf/seaweedfs/releases/latest | egrep -o 'chrislusf/seaweedfs/releases/download/.*/linux_amd64.tar.gz') && \
tar -C /usr/bin/ -xzvf /tmp/linux_amd64.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/*
@@ -22,6 +33,8 @@ EXPOSE 9333
# s3 server http port
EXPOSE 8333
+RUN mkdir -p /data/filerldb2
+
VOLUME /data
COPY filer.toml /etc/seaweedfs/filer.toml
diff --git a/docker/Dockerfile.go_build b/docker/Dockerfile.go_build
index d0a214476..85cbb6143 100644
--- a/docker/Dockerfile.go_build
+++ b/docker/Dockerfile.go_build
@@ -16,6 +16,8 @@ EXPOSE 9333
# s3 server http port
EXPOSE 8333
+RUN mkdir -p /data/filerldb2
+
VOLUME /data
RUN mkdir -p /etc/seaweedfs
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 105087dbe..c28bd263c 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -29,11 +29,10 @@ case "$1" in
;;
'filer')
- ARGS="-ip `hostname -i` "
+ ARGS=""
if [ -n "$MASTER_PORT_9333_TCP_ADDR" ] ; then
ARGS="$ARGS -master=$MASTER_PORT_9333_TCP_ADDR:$MASTER_PORT_9333_TCP_PORT"
fi
- mkdir -p /data/filerdb
exec /usr/bin/weed $@ $ARGS
;;
@@ -45,6 +44,16 @@ case "$1" in
exec /usr/bin/weed $@ $ARGS
;;
+ 'cronjob')
+ MASTER=${WEED_MASTER-localhost:9333}
+ FIX_REPLICATION_CRON_SCHEDULE=${CRON_SCHEDULE-*/7 * * * * *}
+ echo "$FIX_REPLICATION_CRON_SCHEDULE" 'echo "volume.fix.replication" | weed shell -master='$MASTER > /crontab
+ BALANCING_CRON_SCHEDULE=${CRON_SCHEDULE-25 * * * * *}
+ echo "$BALANCING_CRON_SCHEDULE" 'echo "volume.balance -c ALL -force" | weed shell -master='$MASTER >> /crontab
+ echo "Running Crontab:"
+ cat /crontab
+ exec supercronic /crontab
+ ;;
*)
exec /usr/bin/weed $@
;;
diff --git a/docker/filer.toml b/docker/filer.toml
index 5bf809cd8..a11e5de2b 100644
--- a/docker/filer.toml
+++ b/docker/filer.toml
@@ -1,3 +1,3 @@
-[leveldb]
+[leveldb2]
enabled = true
-dir = "/data/filerdb"
+dir = "/data/filerldb2"
diff --git a/docker/seaweedfs-compose.yml b/docker/seaweedfs-compose.yml
index 05ed0e69e..d66b921bb 100644
--- a/docker/seaweedfs-compose.yml
+++ b/docker/seaweedfs-compose.yml
@@ -26,6 +26,16 @@ services:
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: