aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-09-30 21:10:23 -0700
committerChris Lu <chris.lu@gmail.com>2021-09-30 21:10:34 -0700
commit7b776be285de6c3980af9c1368a0534e5e62d7df (patch)
tree8b68134993cf416bf7477125b5b732760ba5dca4
parent3b159db1430ac70d436a7f93297e3d8eff424950 (diff)
downloadseaweedfs-7b776be285de6c3980af9c1368a0534e5e62d7df.tar.xz
seaweedfs-7b776be285de6c3980af9c1368a0534e5e62d7df.zip
build docker image for chrislusf/seaweedfs:rocksdb
-rw-r--r--docker/Dockerfile.go_rocksdb14
-rw-r--r--docker/Dockerfile.rocksdb_large47
-rw-r--r--docker/Makefile6
3 files changed, 67 insertions, 0 deletions
diff --git a/docker/Dockerfile.go_rocksdb b/docker/Dockerfile.go_rocksdb
new file mode 100644
index 000000000..18367e40c
--- /dev/null
+++ b/docker/Dockerfile.go_rocksdb
@@ -0,0 +1,14 @@
+FROM amd64/golang:1.17-buster
+
+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 v6.22.1
+
+# build RocksDB
+RUN cd /tmp && \
+ git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb --depth 1 --single-branch --branch $ROCKSDB_VERSION && \
+ cd rocksdb && \
+ make static_lib && \
+ make install-static
+
diff --git a/docker/Dockerfile.rocksdb_large b/docker/Dockerfile.rocksdb_large
new file mode 100644
index 000000000..719e0afd8
--- /dev/null
+++ b/docker/Dockerfile.rocksdb_large
@@ -0,0 +1,47 @@
+FROM chrislusf/gorocksdb as builder
+
+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)" \
+ && 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/entrypoint.sh /entrypoint.sh
+RUN apk add fuse snappy gflags
+
+# 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
+
+RUN chmod +x /entrypoint.sh
+
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/docker/Makefile b/docker/Makefile
index 8efc0ded2..b5fff1c16 100644
--- a/docker/Makefile
+++ b/docker/Makefile
@@ -13,6 +13,12 @@ build: binary
docker build --no-cache -t chrislusf/seaweedfs:local -f Dockerfile.local .
rm ./weed
+build_gorocksdb:
+ docker build --no-cache -t chrislusf/gorocksdb -f Dockerfile.go_rocksdb .
+
+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 .