mirror of https://github.com/ethereum/go-ethereum
swarm/docker: Dockerfile for swarm:edge docker image (#18386)
parent
1ea5279d5d
commit
49975264a8
@ -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"] |
@ -0,0 +1,7 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
set -o errexit |
||||||
|
set -o pipefail |
||||||
|
set -o nounset |
||||||
|
|
||||||
|
/swarm-smoke $@ 2>&1 || true |
@ -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 |
Loading…
Reference in new issue