use docker built binaries for faster automated release

This commit is contained in:
Chris Lu
2020-01-25 08:04:45 -08:00
parent 94526f8e10
commit 9863f51cc8
3 changed files with 15 additions and 59 deletions

View File

@@ -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 FROM alpine AS final
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.8/supercronic-linux-amd64 \ LABEL author="Chris Lu"
SUPERCRONIC=supercronic-linux-amd64 \ COPY --from=builder /root/go/bin/weed /usr/bin/
SUPERCRONIC_SHA1SUM=be43e64c45acd6ec4fce5831e03759c89676a0ea RUN mkdir -p /etc/seaweedfs
COPY --from=builder /go/src/github.com/chrislusf/seaweedfs/docker/filer.toml /etc/seaweedfs/filer.toml
# Install SeaweedFS and Supercronic ( for cron job mode ) COPY --from=builder /go/src/github.com/chrislusf/seaweedfs/docker/entrypoint.sh /entrypoint.sh
# 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 # volume server gprc port
EXPOSE 18080 EXPOSE 18080
@@ -37,8 +30,6 @@ RUN mkdir -p /data/filerldb2
VOLUME /data VOLUME /data
COPY filer.toml /etc/seaweedfs/filer.toml
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -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"]

View File

@@ -4,7 +4,7 @@ services:
master: master:
build: build:
context: . context: .
dockerfile: Dockerfile.go_build dockerfile: Dockerfile
ports: ports:
- 9333:9333 - 9333:9333
- 19333:19333 - 19333:19333
@@ -12,7 +12,7 @@ services:
volume: volume:
build: build:
context: . context: .
dockerfile: Dockerfile.go_build dockerfile: Dockerfile
ports: ports:
- 8080:8080 - 8080:8080
- 18080:18080 - 18080:18080
@@ -22,7 +22,7 @@ services:
filer: filer:
build: build:
context: . context: .
dockerfile: Dockerfile.go_build dockerfile: Dockerfile
ports: ports:
- 8888:8888 - 8888:8888
- 18888:18888 - 18888:18888
@@ -33,7 +33,7 @@ services:
s3: s3:
build: build:
context: . context: .
dockerfile: Dockerfile.go_build dockerfile: Dockerfile
ports: ports:
- 8333:8333 - 8333:8333
command: '-v=4 s3 -filer="filer:8888"' command: '-v=4 s3 -filer="filer:8888"'