12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- FROM golang:1.22 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 v8.10.0
- # 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/seaweedfs/
- RUN git clone https://github.com/seaweedfs/seaweedfs /go/src/github.com/seaweedfs/seaweedfs
- ARG BRANCH=${BRANCH:-master}
- RUN cd /go/src/github.com/seaweedfs/seaweedfs && git checkout $BRANCH
- RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed \
- && export LDFLAGS="-X github.com/seaweedfs/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/seaweedfs/seaweedfs/docker/filer_rocksdb.toml /etc/seaweedfs/filer.toml
- COPY --from=builder /go/src/github.com/seaweedfs/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/filer_rocksdb
- VOLUME /data
- WORKDIR /data
- RUN chmod +x /entrypoint.sh
- ENTRYPOINT ["/entrypoint.sh"]
|