From 3f6e0e34cbb75fa440c8ccd182adb68ac7301847 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 25 Jan 2020 08:17:59 -0800 Subject: [PATCH] Revert "use docker built binaries for faster automated release" This reverts commit 9863f51cc8280a613eb816f5b73bda0fcc60f459. --- docker/Dockerfile | 31 ++++++++++++++++++++----------- docker/Dockerfile.go_build | 35 +++++++++++++++++++++++++++++++++++ docker/local-dev-compose.yml | 8 ++++---- 3 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 docker/Dockerfile.go_build diff --git a/docker/Dockerfile b/docker/Dockerfile index 306ce3aa1..38117a3dc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,15 +1,22 @@ -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 frolvlad/alpine-glibc -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 +# 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/* # volume server gprc port EXPOSE 18080 @@ -30,6 +37,8 @@ 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 new file mode 100644 index 000000000..306ce3aa1 --- /dev/null +++ b/docker/Dockerfile.go_build @@ -0,0 +1,35 @@ +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 02ed1e6a3..c2f588a60 100644 --- a/docker/local-dev-compose.yml +++ b/docker/local-dev-compose.yml @@ -4,7 +4,7 @@ services: master: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.go_build ports: - 9333:9333 - 19333:19333 @@ -12,7 +12,7 @@ services: volume: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.go_build ports: - 8080:8080 - 18080:18080 @@ -22,7 +22,7 @@ services: filer: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.go_build ports: - 8888:8888 - 18888:18888 @@ -33,7 +33,7 @@ services: s3: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.go_build ports: - 8333:8333 command: '-v=4 s3 -filer="filer:8888"'