diff --git a/Dockerfile b/Dockerfile index 024f6be1..38f3f35f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,13 @@ FROM golang:alpine COPY . /go/src/github.com/filebrowser/filebrowser - -WORKDIR /go/src/github.com/filebrowser/filebrowser -RUN apk --no-cache --update upgrade && apk --no-cache add ca-certificates git curl && \ - curl -fsSL -o /usr/local/bin/dep https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64 && \ - chmod +x /usr/local/bin/dep -RUN dep ensure -vendor-only - WORKDIR /go/src/github.com/filebrowser/filebrowser/cmd/filebrowser RUN CGO_ENABLED=0 go build -a RUN mv filebrowser /go/bin/filebrowser FROM scratch COPY --from=0 /go/bin/filebrowser /filebrowser -COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +COPY --from=filebrowser/dev /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt VOLUME /tmp VOLUME /srv diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 00000000..fbbaaecd --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,13 @@ +FROM golang:alpine + +RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \ + sed -i -e "s/v[0-9]\.[0-9]/edge/g" /etc/apk/repositories && \ + apk --no-cache -U upgrade && apk --no-cache add ca-certificates yarn git curl dos2unix && \ + go get github.com/GeertJohan/go.rice/rice && \ + curl -fsSL -o /usr/local/bin/dep $( \ + curl -s https://api.github.com/repos/golang/dep/releases/latest \ + | grep "browser_download_url.*linux-amd64\"" \ + | cut -d : -f 2,3 \ + | tr -d \" \ + ) && \ + chmod +x /usr/local/bin/dep diff --git a/build.sh b/build.sh index 6c060753..89ee9981 100644 --- a/build.sh +++ b/build.sh @@ -1,4 +1,5 @@ #!/bin/sh + set -e cd $(dirname $0) @@ -16,6 +17,8 @@ yarn build cd .. +dep ensure -vendor-only + # Install rice tool if not present if ! [ -x "$(command -v rice)" ]; then go get github.com/GeertJohan/go.rice/rice diff --git a/build_in_docker.sh b/build_in_docker.sh index 21312ef2..767660b1 100644 --- a/build_in_docker.sh +++ b/build_in_docker.sh @@ -1,17 +1,16 @@ #!/bin/sh +set -e + cd $(dirname $0) -docker pull golang:alpine +WORKDIR="/go/src/github.com/filebrowser/filebrowser" $(command -v winpty) docker run --rm -it \ - -v /$(pwd)://src \ - -w //src \ - golang:alpine \ + -v /$(pwd):/${WORKDIR} \ + -w /${WORKDIR} \ + filebrowser/filebrowser:dev \ sh -c '\ - echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \ - sed -i -e "s/v[0-9]\.[0-9]/edge/g" /etc/apk/repositories && \ - apk add -U --no-cache yarn git && \ - go get github.com/GeertJohan/go.rice/rice && \ + dos2unix build.sh && \ ./build.sh \ '