New release docker image (#1664)

* removing unused docker image, switching to new docker image

* switch to using the new release image and pipeline

* pr fixes

Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
This commit is contained in:
Joshua Fernandes
2019-07-11 14:44:37 +10:00
committed by GitHub
parent 17a7985c7f
commit 29c3c14263
16 changed files with 136 additions and 528 deletions

3
docker/.gitignore vendored
View File

@@ -1,2 +1,3 @@
pantheon-*.tar.gz
pantheon/*
pantheon/*
pantheon-*

View File

@@ -1,21 +1,28 @@
FROM openjdk:11.0.2-jre-slim-stretch
COPY pantheon-*.tar.gz /tmp/.
RUN tar xzf /tmp/pantheon-*.tar.gz -C /tmp && \
rm /tmp/pantheon-*.tar.gz && \
mv /tmp/pantheon-* /opt/pantheon
COPY pantheon /opt/pantheon/
WORKDIR /opt/pantheon
# Expose services ports
# 8545 HTTP JSON-RPC
# 8546 WS JSON-RPC
# 8547 HTTP GraphQL
# 30303 P2P
EXPOSE 8545 8546 8547 30303
RUN mkdir /var/lib/pantheon
RUN mkdir /etc/pantheon/
COPY entrypoint.sh /opt/pantheon/pantheon-entrypoint.sh
RUN chmod +x /opt/pantheon/pantheon-entrypoint.sh
ENTRYPOINT ["/opt/pantheon/bin/pantheon"]
WORKDIR /var/lib/pantheon
VOLUME ["/var/lib/pantheon"]
EXPOSE 8545 8546 30303
ENV PANTHEON_OPTS="-Dpantheon.docker=true"
ENTRYPOINT ["/opt/pantheon/pantheon-entrypoint.sh"]
# Build-time metadata as defined at http://label-schema.org
ARG BUILD_DATE
ARG VCS_REF
ARG VERSION
LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.name="Pantheon" \
org.label-schema.description="Enterprise Ethereum client" \
org.label-schema.url="https://docs.pantheon.pegasys.tech/" \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/PegaSysEng/pantheon.git" \
org.label-schema.vendor="Pegasys" \
org.label-schema.version=$VERSION \
org.label-schema.schema-version="1.0"

View File

@@ -1,205 +0,0 @@
#!/bin/bash
set -e
if ! { [ "${1#-}" != "$1" ] || [ "$#" == 0 ] || [ "$1" == "blocks" ] || [ "$1" == "public-key" ] || [ "$1" == "password" ]; }; then
exec "$@"
fi
p2plistenset=false
rpclistenset=false
wslistenset=false
for i in "$@"; do
case "$i" in
--rpc-http-host) rpclistenset=true ;;
--rpc-http-host=*) rpclistenset=true ;;
--rpc-http-port) rpclistenset=true ;;
--rpc-http-port=*) rpclistenset=true ;;
--rpc-ws-host) wslistenset=true ;;
--rpc-ws-host=*) wslistenset=true ;;
--rpc-ws-port) wslistenset=true ;;
--rpc-ws-port=*) wslistenset=true ;;
--p2p-host) p2plistenset=true ;;
--p2p-host=*) p2plistenset=true ;;
--p2p-port) p2plistenset=true ;;
--p2p-port=*) p2plistenset=true ;;
esac
done
if $p2plistenset ; then
echo "ERROR: p2p host and port cannot be set by argument under docker, define your custom port by mapping it into the containers 30303 port"
exit 1
else
set -- "--p2p-host=0.0.0.0" "$@"
set -- "--p2p-port=30303" "$@"
fi
if $rpclistenset ; then
echo "ERROR: rpc http host and port cannot be set by argument under docker, define your custom port by mapping it into the containers 8545 port"
exit 1
else
set -- "--rpc-http-host=0.0.0.0" "$@"
set -- "--rpc-http-port=8545" "$@"
fi
if $wslistenset ; then
echo "ERROR: rpc ws host and port cannot be set by argument under docker, define your custom port by mapping it into the containers 8546 port"
exit 1
else
set -- "--rpc-ws-host=0.0.0.0" "$@"
set -- "--rpc-ws-port=8546" "$@"
fi
if [ "$P2P_ENABLED" == "false" ] || [ "$P2P_ENABLED" == "0" ]; then
set -- "--p2p-enabled=false" "$@"
fi
if [ "$DISCOVERY_ENABLED" == "false" ] || [ "$DISCOVERY_ENABLED" == "0" ]; then
set -- "--discovery-enabled=false" "$@"
fi
if [[ ! -z "$BOOTNODES" ]]; then
set -- "--bootnodes=$BOOTNODES" "$@"
fi
if [[ ! -z "$MAX_PEERS" ]]; then
set -- "$@" "--max-peers=$MAX_PEERS"
fi
if [[ ! -z "$BANNED_NODE_IDS" ]]; then
set -- "--banned-node-ids=$BANNED_NODE_IDS" "$@"
fi
if [[ ! -z "$BANNED_NODE_ID" ]]; then
set -- "--banned-node-id=$BANNED_NODE_ID" "$@"
fi
if [[ ! -z "$SYNC_MODE" ]]; then
set -- "--sync-mode=$SYNC_MODE" "$@"
fi
if [[ ! -z "$NETWORK" ]]; then
set -- "--network=$NETWORK" "$@"
fi
if [[ ! -z "$NETWORK_ID" ]]; then
set -- "--network-id=$NETWORK_ID" "$@"
fi
if [ "$RPC_HTTP_ENABLED" == "true" ] || [ "$RPC_HTTP_ENABLED" == "1" ]; then
set -- "--rpc-http-enabled=true" "$@"
fi
if [[ ! -z "$RPC_HTTP_CORS_ORIGINS" ]]; then
set -- "--rpc-http-cors-origins=$RPC_HTTP_CORS_ORIGINS" "$@"
fi
if [[ ! -z "$RPC_HTTP_API" ]]; then
set -- "--rpc-http-api=$RPC_HTTP_API" "$@"
fi
if [[ ! -z "$RPC_HTTP_APIS" ]]; then
set -- "--rpc-http-apis=$RPC_HTTP_APIS" "$@"
fi
if [ "$RPC_WS_ENABLED" == "true" ] || [ "$RPC_WS_ENABLED" == "1" ]; then
set -- "--rpc-ws-enabled=true" "$@"
fi
if [[ ! -z "$RPC_WS_API" ]]; then
set -- "--rpc-ws-api=$RPC_WS_API" "$@"
fi
if [[ ! -z "$RPC_WS_APIS" ]]; then
set -- "--rpc-ws-apis=$RPC_WS_APIS" "$@"
fi
if [[ ! -z "$RPC_WS_REFRESH_DELAY" ]]; then
set -- "--rpc-ws-refresh_delay=$RPC_WS_REFRESH_DELAY" "$@"
fi
if [ "$METRICS_ENABLED" == "true" ] || [ "$METRICS_ENABLED" == "1" ]; then
set -- "--metrics-enabled=true" "$@"
fi
if [[ ! -z "$METRICS_HOST" ]]; then
set -- "--metrics-host=$METRICS_HOST" "$@"
fi
if [[ ! -z "$METRICS_PORT" ]]; then
set -- "--metrics-port=$METRICS_PORT" "$@"
fi
if [ "$METRICS_PUSH_ENABLED" == "true" ] || [ "$METRICS_PUSH_ENABLED" == "1" ]; then
set -- "--metrics-push-enabled=true" "$@"
fi
if [[ ! -z "$METRICS_PUSH_INTERVAL" ]]; then
set -- "--metrics-push-interval=$METRICS_PUSH_INTERVAL" "$@"
fi
if [[ ! -z "$METRICS_PUSH_HOST" ]]; then
set -- "--metrics-push-host=$METRICS_PUSH_HOST" "$@"
fi
if [[ ! -z "$METRICS_PUSH_PORT" ]]; then
set -- "--metrics-push-port=$METRICS_PUSH_PORT" "$@"
fi
if [[ ! -z "$METRICS_PUSH_PROMETHEUS_JOB" ]]; then
set -- "--metrics-push-prometheus-job=$METRICS_PUSH_PROMETHEUS_JOB" "$@"
fi
if [[ ! -z "$HOST_WHITELIST" ]]; then
set -- "--host-whitelist=$HOST_WHITELIST" "$@"
fi
if [[ ! -z "$LOGGING" ]]; then
set -- "--logging=$LOGGING" "$@"
fi
if [ "$MINER_ENABLED" == "true" ] || [ "$MINER_ENABLED" == "1" ]; then
set -- "--miner-enabled=true" "$@"
fi
if [[ ! -z "$MINER_COINBASE" ]]; then
set -- "--miner-coinbase=$MINER_COINBASE" "$@"
fi
if [[ ! -z "$MIN_GAS_PRICE" ]]; then
set -- "--min-gas-price=$MIN_GAS_PRICE" "$@"
fi
if [[ ! -z "$MINER_EXTRA_DATA" ]]; then
set -- "--miner-extra-data=$MINER_EXTRA_DATA" "$@"
fi
if [ "$PERMISSIONS_NODES_ENABLED" == "true" ] || [ "$PERMISSIONS_NODES_ENABLED" == "1" ]; then
set -- "--permissions_nodes_enabled=true" "$@"
fi
if [ "$PERMISSIONS_ACCOUNTS_ENABLED" == "true" ] || [ "$PERMISSIONS_ACCOUNTS_ENABLED" == "1" ]; then
set -- "--permissions_accounts_enabled=true" "$@"
fi
if [ "$PRIVACY_ENABLED" == "true" ] || [ "$PRIVACY_ENABLED" == "1" ]; then
set -- "--privacy-enabled=true" "$@"
fi
if [[ ! -z "$PRIVACY_URL" ]]; then
set -- "--privacy-url=$PRIVACY_URL" "$@"
fi
if [[ ! -z "$PRIVACY_PUBLIC_KEY_FILE" ]]; then
set -- "--privacy-public-key-file=$PRIVACY_PUBLIC_KEY_FILE" "$@"
fi
if [[ ! -z "$PRIVACY_PRECOMPILED_ADDRESS" ]]; then
set -- "--privacy-precompiled-address=$PRIVACY_PRECOMPILED_ADDRESS" "$@"
fi
set -- "/opt/pantheon/bin/pantheon" "$@"
exec "$@"

View File

@@ -7,7 +7,18 @@ DOCKER_IMAGE=$1
i=0
# Test for normal unconfigured startup
GOSS_FILES_PATH=tests/01 bash tests/dgoss run $DOCKER_IMAGE > ./reports/01.xml || i=`expr $i + 1`
# Test for normal startup with ports opened
GOSS_FILES_PATH=tests/01 \
bash tests/dgoss \
run $DOCKER_IMAGE \
--network=dev \
--p2p-host=0.0.0.0 \
--rpc-http-enabled \
--rpc-http-host=0.0.0.0 \
--rpc-ws-enabled \
--rpc-ws-host=0.0.0.0 \
--graphql-http-enabled \
--graphql-http-host=0.0.0.0 \
> ./reports/01.xml || i=`expr $i + 1`
exit $i

View File

@@ -1,11 +1,4 @@
file:
/etc/pantheon:
exists: true
mode: "0755"
owner: root
group: root
filetype: directory
contains: []
/opt/pantheon/bin/pantheon:
exists: true
mode: "0755"
@@ -13,45 +6,27 @@ file:
group: root
filetype: file
contains: []
/opt/pantheon/pantheon-entrypoint.sh:
exists: true
mode: "0755"
owner: root
group: root
filetype: file
contains: []
/tmp/pantheon.tar.gz:
exists: false
contains: []
/var/lib/pantheon:
/opt/pantheon/database:
exists: true
mode: "0755"
owner: root
group: root
filetype: directory
contains: []
/var/lib/pantheon/database:
exists: true
mode: "0755"
owner: root
group: root
filetype: directory
contains: []
/var/lib/pantheon/key:
/opt/pantheon/key:
exists: true
mode: "0600"
owner: root
group: root
filetype: file
contains: []
package:
libc6:
installed: true
port:
tcp:8545:
listening: false
listening: true
tcp:8546:
listening: false
listening: true
tcp:8547:
listening: true
tcp:30303:
listening: true
ip:

View File

@@ -3,3 +3,15 @@ port:
listening: true
ip:
- 0.0.0.0
tcp:8545:
listening: true
ip:
- 0.0.0.0
tcp:8546:
listening: true
ip:
- 0.0.0.0
tcp:8547:
listening: true
ip:
- 0.0.0.0