diff --git a/Dockerfile b/Dockerfile index 5efe3c452..88a8bf4f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,27 @@ -FROM golang:1.4 +FROM alpine:3.2 MAINTAINER Brian Tiger Chow ENV IPFS_PATH /data/ipfs - -RUN useradd -m -d /data -u 1000 ipfs && \ - mkdir -p /data/ipfs && chown ipfs:ipfs /data/ipfs +ENV VERSION master EXPOSE 4001 5001 8080 # 4001 = Swarm, 5001 = API, 8080 = HTTP transport VOLUME /data/ipfs -ADD . /go/src/github.com/ipfs/go-ipfs -RUN cd /go/src/github.com/ipfs/go-ipfs/cmd/ipfs && go install +ADD bin/container_daemon /usr/local/bin/start_ipfs +ADD bin/container_shacheck /usr/local/bin/shacheck -RUN cp /go/src/github.com/ipfs/go-ipfs/bin/container_daemon /usr/local/bin/start_ipfs && \ - chmod 755 /usr/local/bin/start_ipfs +RUN adduser -D -h /data -u 1000 ipfs \ + && mkdir -p /data/ipfs && chown ipfs:ipfs /data/ipfs \ + && apk add --update bash curl wget ca-certificates zip \ + && wget https://gobuilder.me/get/github.com/ipfs/go-ipfs/cmd/ipfs/ipfs_${VERSION}_linux-386.zip \ + && /bin/bash /usr/local/bin/shacheck ${VERSION} ipfs_${VERSION}_linux-386.zip \ + && unzip ipfs_${VERSION}_linux-386.zip \ + && rm ipfs_${VERSION}_linux-386.zip \ + && mv ipfs/ipfs /usr/local/bin/ipfs \ + && chmod 755 /usr/local/bin/start_ipfs \ + && apk del wget zip curl USER ipfs diff --git a/bin/container_shacheck b/bin/container_shacheck new file mode 100644 index 000000000..fc53ec6d1 --- /dev/null +++ b/bin/container_shacheck @@ -0,0 +1,10 @@ +#!/bin/bash -xe + +VERSION=$1 +FILENAME=$2 + +ONLINE_SHA=$( curl "https://gobuilder.me/api/v1/github.com/ipfs/go-ipfs/cmd/ipfs/signed-hashes/${VERSION}" 2>/dev/null | grep -A 4 ${FILENAME} | grep sha1 | awk '{ print $3 }' ) + +echo "Checking SHA1: ${ONLINE_SHA} == $(sha1sum ${FILENAME} | awk '{print $1}')" + +echo "${ONLINE_SHA} ${FILENAME}" | sha1sum -cw