From 7b776be285de6c3980af9c1368a0534e5e62d7df Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 30 Sep 2021 21:10:23 -0700 Subject: [PATCH] build docker image for chrislusf/seaweedfs:rocksdb --- docker/Dockerfile.go_rocksdb | 14 ++++++++++ docker/Dockerfile.rocksdb_large | 47 +++++++++++++++++++++++++++++++++ docker/Makefile | 6 +++++ 3 files changed, 67 insertions(+) create mode 100644 docker/Dockerfile.go_rocksdb create mode 100644 docker/Dockerfile.rocksdb_large 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 .