From c9cd84bca7ae61410268035306dac621d0c51d6e Mon Sep 17 00:00:00 2001 From: Konstantin Zolotarev Date: Mon, 29 Oct 2018 17:18:33 +0200 Subject: [PATCH] Updated docker integration --- docker/Makefile | 25 +++++++++++++++++++++-- docker/README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 73 insertions(+), 4 deletions(-) diff --git a/docker/Makefile b/docker/Makefile index 56906fcc37..9e37f5e821 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -21,8 +21,29 @@ endif ifdef ETHEREUM_JSONRPC_HTTP_URL BLOCKSCOUT_CONTAINNER_PARAMS += -e 'ETHEREUM_JSONRPC_HTTP_URL=$(ETHEREUM_JSONRPC_HTTP_URL)' endif -ifdef ETHEREUM_JSONRPC_WEB_SOCKET_URL - BLOCKSCOUT_CONTAINNER_PARAMS += -e 'ETHEREUM_JSONRPC_WEB_SOCKET_URL=$(ETHEREUM_JSONRPC_WEB_SOCKET_URL)' +ifdef ETHEREUM_JSONRPC_WS_URL + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'ETHEREUM_JSONRPC_WS_URL=$(ETHEREUM_JSONRPC_WS_URL)' +endif +ifdef ETHEREUM_JSONRPC_TRACE_URL + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'ETHEREUM_JSONRPC_TRACE_URL=$(ETHEREUM_JSONRPC_TRACE_URL)' +endif +ifdef COIN + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'COIN=$(COIN)' +endif +ifdef LOGO + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'LOGO=$(LOGO)' +endif +ifdef NETWORK + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'NETWORK=$(NETWORK)' +endif +ifdef SUBNETWORK + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'SUBNETWORK=$(SUBNETWORK)' +endif +ifdef NETWORK_ICON + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'NETWORK_ICON=$(NETWORK_ICON)' +endif +ifdef NETWORK_PATH + BLOCKSCOUT_CONTAINNER_PARAMS += -e 'NETWORK_PATH=$(NETWORK_PATH)' endif HAS_BLOCKSCOUT_IMAGE := $(shell docker images | grep ${DOCKER_IMAGE}) diff --git a/docker/README.md b/docker/README.md index 949a926390..17e142c27f 100644 --- a/docker/README.md +++ b/docker/README.md @@ -3,6 +3,34 @@ For now this integration is not production ready. It made only for local usage only ! ## How to use ? +First of all blockscout requires `PostgreSQL` server for working. +It will be provided by starting script (new docker image will be created named `postgres`) + +**Starting command** +`make start` - will set everything up and start blockscout in container. +To connect it to your local environment you will have to configure it using [env variables](#env-variables) + +Exmaple connecting to local `ganache` instance running on port `2000` on Mac/Windows: +```bash +COIN=DAI \ +ETHEREUM_JSONRPC_VARIANT=ganache \ +ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:2000 \ +ETHEREUM_JSONRPC_WEB_SOCKET_URL=ws://host.docker.internal:2000 \ +make start +``` + +Blockscout will be available on `localhost:4000` + +**Note** +On mac/Windows Docker provides with a special URL `host.docker.internal` that will be available into container and routed to your local machine. +On Linux docker is starting using `--network=host` and all services should be available on `localhost` + +### Migrations + +By default `Makefile` will do migrations for you on `PostgreSQL` creation. +But you could run migrations manualy using `make migrate` command. + +**WARNING** Migrations will clean up your local database ! ## Env variables @@ -24,6 +52,26 @@ Available options are: | Variable | Description | Default value | | -------- | ----------- | ------------- | | `ETHEREUM_JSONRPC_VARIANT` | Variant of your JSON RPC service: `parity`, `geth` or `ganache` | `parity` | -| `ETHEREUM_JSONRPC_HTTP_URL` | HTTP JSON RPC URL Only for `geth` or `ganache` variant | `http://localhost:7545` | -| `ETHEREUM_JSONRPC_WEB_SOCKET_URL` | WS JSON RPC url **Only for `geth` or `ganache` variant** | `ws://localhost:7545` | +| `ETHEREUM_JSONRPC_HTTP_URL` | HTTP JSON RPC URL Only for `geth` or `ganache` variant | Different per JSONRPC variant | +| `ETHEREUM_JSONRPC_WS_URL` | WS JSON RPC url | Different per JSONRPC variant | +| `ETHEREUM_JSONRPC_TRACE_URL` | Trace URL **Only for `parity` variant** | `https://sokol-trace.poa.network` | +| `COIN` | Default Coin | `POA` | +| `LOGO` | Coin logo | Empty | +| `NETWORK` | Network | Empty | +| `SUBNETWORK` | Subnetwork | Empty | +| `NETWORK_ICON` | Network icon | Empty | +| `NETWORK_PATH` | Network path | `/` | + + +`ETHEREUM_JSONRPC_HTTP_URL` default values: + + * For `parity` - `https://sokol.poa.network` + * For `geth` - `https://mainnet.infura.io/8lTvJTKmHPCHazkneJsY` + * For `ganache` - `http://localhost:7545` + +`ETHEREUM_JSONRPC_WS_URL` default values: + + * For `parity` - `wss://sokol-ws.poa.network/ws` + * For `geth` - `wss://mainnet.infura.io/8lTvJTKmHPCHazkneJsY/ws` + * For `ganache` - `ws://localhost:7545`