Dockerfile.rocksdb_large 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. FROM golang:1.24 AS builder
  2. RUN apt-get update
  3. RUN apt-get install -y build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev libzstd-dev
  4. ARG ROCKSDB_VERSION=v10.5.1
  5. ENV ROCKSDB_VERSION=${ROCKSDB_VERSION}
  6. # build RocksDB
  7. RUN cd /tmp && \
  8. git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb --depth 1 --single-branch --branch $ROCKSDB_VERSION && \
  9. cd rocksdb && \
  10. PORTABLE=1 make -j"$(nproc)" static_lib && \
  11. make install-static
  12. ENV CGO_CFLAGS="-I/tmp/rocksdb/include"
  13. ENV CGO_LDFLAGS="-L/tmp/rocksdb -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd"
  14. # build SeaweedFS
  15. RUN mkdir -p /go/src/github.com/seaweedfs/
  16. RUN git clone https://github.com/seaweedfs/seaweedfs /go/src/github.com/seaweedfs/seaweedfs
  17. ARG BRANCH=master
  18. RUN cd /go/src/github.com/seaweedfs/seaweedfs && git checkout $BRANCH
  19. RUN cd /go/src/github.com/seaweedfs/seaweedfs/weed \
  20. && export LDFLAGS="-X github.com/seaweedfs/seaweedfs/weed/util/version.COMMIT=$(git rev-parse --short HEAD)" \
  21. && go install -tags "5BytesOffset rocksdb" -ldflags "-extldflags -static ${LDFLAGS}"
  22. FROM alpine AS final
  23. LABEL author="Chris Lu"
  24. COPY --from=builder /go/bin/weed /usr/bin/
  25. RUN mkdir -p /etc/seaweedfs
  26. COPY --from=builder /go/src/github.com/seaweedfs/seaweedfs/docker/filer_rocksdb.toml /etc/seaweedfs/filer.toml
  27. COPY --from=builder /go/src/github.com/seaweedfs/seaweedfs/docker/entrypoint.sh /entrypoint.sh
  28. RUN apk add fuse snappy gflags
  29. # volume server gprc port
  30. EXPOSE 18080
  31. # volume server http port
  32. EXPOSE 8080
  33. # filer server gprc port
  34. EXPOSE 18888
  35. # filer server http port
  36. EXPOSE 8888
  37. # master server shared gprc port
  38. EXPOSE 19333
  39. # master server shared http port
  40. EXPOSE 9333
  41. # s3 server http port
  42. EXPOSE 8333
  43. # webdav server http port
  44. EXPOSE 7333
  45. RUN mkdir -p /data/filer_rocksdb
  46. VOLUME /data
  47. WORKDIR /data
  48. RUN chmod +x /entrypoint.sh
  49. ENTRYPOINT ["/entrypoint.sh"]