FROM golang:1.17-alpine as builder RUN apk add git g++ fuse 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)" \ && CGO_ENABLED=0 go install -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 # for weed mount # 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 WORKDIR /data RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]