diff --git a/docker/Dockerfile b/docker/Dockerfile index 38117a3dc..306ce3aa1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,22 +1,15 @@ -FROM frolvlad/alpine-glibc +FROM frolvlad/alpine-glibc as builder +RUN apk add git go g++ +RUN mkdir -p /go/src/github.com/chrislusf/ +RUN git clone https://github.com/chrislusf/seaweedfs /go/src/github.com/chrislusf/seaweedfs +RUN cd /go/src/github.com/chrislusf/seaweedfs/weed && go install -# Supercronic install settings -ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.8/supercronic-linux-amd64 \ - SUPERCRONIC=supercronic-linux-amd64 \ - SUPERCRONIC_SHA1SUM=be43e64c45acd6ec4fce5831e03759c89676a0ea - -# Install SeaweedFS and Supercronic ( for cron job mode ) -# Tried to use curl only (curl -o /tmp/linux_amd64.tar.gz ...), however it turned out that the following tar command failed with "gzip: stdin: not in gzip format" -RUN apk add --no-cache --virtual build-dependencies --update wget curl ca-certificates && \ - wget -P /tmp https://github.com/$(curl -s -L https://github.com/chrislusf/seaweedfs/releases/latest | egrep -o 'chrislusf/seaweedfs/releases/download/.*/linux_amd64.tar.gz') && \ - tar -C /usr/bin/ -xzvf /tmp/linux_amd64.tar.gz && \ - curl -fsSLO "$SUPERCRONIC_URL" && \ - echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - && \ - chmod +x "$SUPERCRONIC" && \ - mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" && \ - ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic && \ - apk del build-dependencies && \ - rm -rf /tmp/* +FROM alpine AS final +LABEL author="Chris Lu" +COPY --from=builder /root/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 # volume server gprc port EXPOSE 18080 @@ -37,8 +30,6 @@ RUN mkdir -p /data/filerldb2 VOLUME /data -COPY filer.toml /etc/seaweedfs/filer.toml -COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/Dockerfile.go_build b/docker/Dockerfile.go_build deleted file mode 100644 index 306ce3aa1..000000000 --- a/docker/Dockerfile.go_build +++ /dev/null @@ -1,35 +0,0 @@ -FROM frolvlad/alpine-glibc as builder -RUN apk add git go g++ -RUN mkdir -p /go/src/github.com/chrislusf/ -RUN git clone https://github.com/chrislusf/seaweedfs /go/src/github.com/chrislusf/seaweedfs -RUN cd /go/src/github.com/chrislusf/seaweedfs/weed && go install - -FROM alpine AS final -LABEL author="Chris Lu" -COPY --from=builder /root/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 - -# 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 - -RUN mkdir -p /data/filerldb2 - -VOLUME /data - -RUN chmod +x /entrypoint.sh - -ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/local-dev-compose.yml b/docker/local-dev-compose.yml index c2f588a60..02ed1e6a3 100644 --- a/docker/local-dev-compose.yml +++ b/docker/local-dev-compose.yml @@ -4,7 +4,7 @@ services: master: build: context: . - dockerfile: Dockerfile.go_build + dockerfile: Dockerfile ports: - 9333:9333 - 19333:19333 @@ -12,7 +12,7 @@ services: volume: build: context: . - dockerfile: Dockerfile.go_build + dockerfile: Dockerfile ports: - 8080:8080 - 18080:18080 @@ -22,7 +22,7 @@ services: filer: build: context: . - dockerfile: Dockerfile.go_build + dockerfile: Dockerfile ports: - 8888:8888 - 18888:18888 @@ -33,7 +33,7 @@ services: s3: build: context: . - dockerfile: Dockerfile.go_build + dockerfile: Dockerfile ports: - 8333:8333 command: '-v=4 s3 -filer="filer:8888"'