aboutsummaryrefslogtreecommitdiffstats
path: root/swarm
diff options
context:
space:
mode:
authorAnton Evangelatov <anton.evangelatov@gmail.com>2019-01-03 22:32:58 +0800
committerGitHub <noreply@github.com>2019-01-03 22:32:58 +0800
commit49975264a8d37aa9af1a2b71015059245c0c2e0b (patch)
tree83738c338fae0fc68332c71adf655f05f656e4da /swarm
parent1ea5279d5d7cd44ab18d72a2d26f1ad03b8d2b5e (diff)
downloaddexon-49975264a8d37aa9af1a2b71015059245c0c2e0b.tar.gz
dexon-49975264a8d37aa9af1a2b71015059245c0c2e0b.tar.zst
dexon-49975264a8d37aa9af1a2b71015059245c0c2e0b.zip
swarm/docker: Dockerfile for swarm:edge docker image (#18386)
Diffstat (limited to 'swarm')
-rw-r--r--swarm/api/http/middleware.go2
-rw-r--r--swarm/docker/Dockerfile23
-rwxr-xr-xswarm/docker/run-smoke.sh7
-rwxr-xr-xswarm/docker/run.sh26
4 files changed, 57 insertions, 1 deletions
diff --git a/swarm/api/http/middleware.go b/swarm/api/http/middleware.go
index f7f819eab..320da3046 100644
--- a/swarm/api/http/middleware.go
+++ b/swarm/api/http/middleware.go
@@ -80,7 +80,7 @@ func InitLoggingResponseWriter(h http.Handler) http.Handler {
h.ServeHTTP(writer, r)
ts := time.Since(tn)
- log.Info("request served", "ruid", GetRUID(r.Context()), "code", writer.statusCode, "time", ts*time.Millisecond)
+ log.Info("request served", "ruid", GetRUID(r.Context()), "code", writer.statusCode, "time", ts)
metrics.GetOrRegisterResettingTimer(fmt.Sprintf("http.request.%s.time", r.Method), nil).Update(ts)
metrics.GetOrRegisterResettingTimer(fmt.Sprintf("http.request.%s.%d.time", r.Method, writer.statusCode), nil).Update(ts)
})
diff --git a/swarm/docker/Dockerfile b/swarm/docker/Dockerfile
new file mode 100644
index 000000000..1ee4e9734
--- /dev/null
+++ b/swarm/docker/Dockerfile
@@ -0,0 +1,23 @@
+FROM golang:1.11-alpine as builder
+
+ARG VERSION
+
+RUN apk add --update git gcc g++ linux-headers
+RUN mkdir -p $GOPATH/src/github.com/ethereum && \
+ cd $GOPATH/src/github.com/ethereum && \
+ git clone https://github.com/ethersphere/go-ethereum && \
+ cd $GOPATH/src/github.com/ethereum/go-ethereum && \
+ git checkout ${VERSION} && \
+ go install -ldflags "-X main.gitCommit=${VERSION}" ./cmd/swarm && \
+ go install -ldflags "-X main.gitCommit=${VERSION}" ./cmd/swarm/swarm-smoke && \
+ go install -ldflags "-X main.gitCommit=${VERSION}" ./cmd/geth && \
+ cp $GOPATH/bin/swarm /swarm && cp $GOPATH/bin/geth /geth && cp $GOPATH/bin/swarm-smoke /swarm-smoke
+
+
+# Release image with the required binaries and scripts
+FROM alpine:3.8
+WORKDIR /
+COPY --from=builder /swarm /geth /swarm-smoke /
+ADD run.sh /run.sh
+ADD run-smoke.sh /run-smoke.sh
+ENTRYPOINT ["/run.sh"]
diff --git a/swarm/docker/run-smoke.sh b/swarm/docker/run-smoke.sh
new file mode 100755
index 000000000..ba57a7ecd
--- /dev/null
+++ b/swarm/docker/run-smoke.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -o errexit
+set -o pipefail
+set -o nounset
+
+/swarm-smoke $@ 2>&1 || true
diff --git a/swarm/docker/run.sh b/swarm/docker/run.sh
new file mode 100755
index 000000000..3e613b56d
--- /dev/null
+++ b/swarm/docker/run.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+set -o errexit
+set -o pipefail
+set -o nounset
+
+PASSWORD=${PASSWORD:-}
+DATADIR=${DATADIR:-/root/.ethereum/}
+
+if [ "$PASSWORD" == "" ]; then echo "Password must be set, in order to use swarm non-interactively." && exit 1; fi
+
+echo $PASSWORD > /password
+
+KEYFILE=`find $DATADIR | grep UTC | head -n 1` || true
+if [ ! -f "$KEYFILE" ]; then echo "No keyfile found. Generating..." && /geth --datadir $DATADIR --password /password account new; fi
+KEYFILE=`find $DATADIR | grep UTC | head -n 1` || true
+if [ ! -f "$KEYFILE" ]; then echo "Could not find nor generate a BZZ keyfile." && exit 1; else echo "Found keyfile $KEYFILE"; fi
+
+VERSION=`/swarm version`
+echo "Running Swarm:"
+echo $VERSION
+
+export BZZACCOUNT="`echo -n $KEYFILE | tail -c 40`" || true
+if [ "$BZZACCOUNT" == "" ]; then echo "Could not parse BZZACCOUNT from keyfile." && exit 1; fi
+
+exec /swarm --bzzaccount=$BZZACCOUNT --password /password --datadir $DATADIR $@ 2>&1