FROM chrislusf/rocksdb_dev_env as builder # build SeaweedFS RUN mkdir -p /go/src/github.com/seaweedfs/ ADD . /go/src/github.com/seaweedfs/seaweedfs RUN ls -al /go/src/github.com/seaweedfs/ && \ cd /go/src/github.com/seaweedfs/seaweedfs/weed \ && export LDFLAGS="-X github.com/seaweedfs/seaweedfs/weed/util/version.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 # Install dependencies and create non-root user RUN apk add --no-cache fuse snappy gflags tmux && \ addgroup -g 1000 seaweed && \ adduser -D -u 1000 -g seaweed seaweed # 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 # Create data directory and set proper ownership for seaweed user RUN mkdir -p /data/filer_rocksdb && \ chown -R seaweed:seaweed /data && \ chmod 755 /entrypoint.sh VOLUME /data WORKDIR /data # Switch to non-root user USER seaweed ENTRYPOINT ["/entrypoint.sh"]