-
Notifications
You must be signed in to change notification settings - Fork 530
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added docker setup for local env (#747)
- Loading branch information
1 parent
bf909f5
commit 29177a3
Showing
5 changed files
with
165 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
docker/local/Dockerfile |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
FROM golang:1.17-alpine AS builder | ||
|
||
WORKDIR /polygon-edge | ||
|
||
ADD go.mod go.sum ./ | ||
RUN go mod download | ||
|
||
COPY . . | ||
|
||
RUN go build -o polygon-edge main.go | ||
|
||
FROM alpine:latest AS runner | ||
|
||
RUN apk --no-cache add ca-certificates jq | ||
|
||
WORKDIR /polygon-edge | ||
|
||
COPY --from=builder /polygon-edge/polygon-edge ./ | ||
COPY ./docker/local/polygon-edge.sh ./ | ||
|
||
# Expose json-rpc, libp2p and grpc ports | ||
EXPOSE 8545 9632 1478 | ||
|
||
ENTRYPOINT ["./polygon-edge.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
version: '3.5' | ||
|
||
services: | ||
## INITIALIZE GENESIS AND SECRETS | ||
init: | ||
build: | ||
context: ../../ | ||
dockerfile: docker/local/Dockerfile | ||
command: ["init"] | ||
volumes: | ||
- node-1:/polygon-edge/data-1 | ||
- node-2:/polygon-edge/data-2 | ||
- node-3:/polygon-edge/data-3 | ||
- node-4:/polygon-edge/data-4 | ||
- genesis:/genesis | ||
networks: | ||
- polygon-edge-docker | ||
|
||
## RUN NODES | ||
## Nodes must have the same names as folders in genesis-legde | ||
node-1: | ||
build: | ||
context: ../../ | ||
dockerfile: docker/local/Dockerfile | ||
command: ["server", "--data-dir", "/data", "--chain", "/genesis/genesis.json", "--grpc-address", "0.0.0.0:9632", "--libp2p", "0.0.0.0:1478", "--jsonrpc", "0.0.0.0:8545", "--seal"] | ||
depends_on: | ||
- init | ||
ports: | ||
- '10000:9632' | ||
- '10002:8545' | ||
volumes: | ||
- node-1:/data | ||
- genesis:/genesis | ||
networks: | ||
- polygon-edge-docker | ||
restart: on-failure | ||
|
||
node-2: | ||
build: | ||
context: ../../ | ||
dockerfile: docker/local/Dockerfile | ||
command: ["server", "--data-dir", "/data", "--chain", "/genesis/genesis.json", "--grpc-address", "0.0.0.0:9632", "--libp2p", "0.0.0.0:1478", "--jsonrpc", "0.0.0.0:8545", "--seal"] | ||
depends_on: | ||
- init | ||
ports: | ||
- '20000:9632' | ||
- '20002:8545' | ||
volumes: | ||
- node-2:/data | ||
- genesis:/genesis | ||
networks: | ||
- polygon-edge-docker | ||
restart: on-failure | ||
|
||
node-3: | ||
build: | ||
context: ../../ | ||
dockerfile: docker/local/Dockerfile | ||
command: ["server", "--data-dir", "/data", "--chain", "/genesis/genesis.json", "--grpc-address", "0.0.0.0:9632", "--libp2p", "0.0.0.0:1478", "--jsonrpc", "0.0.0.0:8545", "--seal"] | ||
depends_on: | ||
- init | ||
ports: | ||
- '30000:9632' | ||
- '30002:8545' | ||
volumes: | ||
- node-3:/data | ||
- genesis:/genesis | ||
networks: | ||
- polygon-edge-docker | ||
restart: on-failure | ||
|
||
node-4: | ||
build: | ||
context: ../../ | ||
dockerfile: docker/local/Dockerfile | ||
command: ["server", "--data-dir", "/data", "--chain", "/genesis/genesis.json", "--grpc-address", "0.0.0.0:9632", "--libp2p", "0.0.0.0:1478", "--jsonrpc", "0.0.0.0:8545", "--seal"] | ||
depends_on: | ||
- init | ||
ports: | ||
- '40000:9632' | ||
- '40002:8545' | ||
volumes: | ||
- node-4:/data | ||
- genesis:/genesis | ||
networks: | ||
- polygon-edge-docker | ||
restart: on-failure | ||
|
||
networks: | ||
polygon-edge-docker: | ||
driver: bridge | ||
name: polygon-edge-docker | ||
|
||
volumes: | ||
node-1: | ||
node-2: | ||
node-3: | ||
node-4: | ||
genesis: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
#!/bin/sh | ||
|
||
set -e | ||
|
||
POLYGON_EDGE_BIN=./polygon-edge | ||
|
||
case "$1" in | ||
|
||
"init") | ||
echo "Generating secrets..." | ||
node1id=$("$POLYGON_EDGE_BIN" secrets init --data-dir data-1 --json | jq -r '.node_id') | ||
node2id=$("$POLYGON_EDGE_BIN" secrets init --data-dir data-2 --json | jq -r '.node_id') | ||
"$POLYGON_EDGE_BIN" secrets init --data-dir data-3 | ||
"$POLYGON_EDGE_BIN" secrets init --data-dir data-4 | ||
echo "Secrets have been successfully generated" | ||
|
||
echo "Generating genesis file..." | ||
"$POLYGON_EDGE_BIN" genesis \ | ||
--dir /genesis/genesis.json \ | ||
--consensus ibft \ | ||
--ibft-validators-prefix-path data- \ | ||
--bootnode /dns4/node-1/tcp/1478/p2p/"$node1id" \ | ||
--bootnode /dns4/node-2/tcp/1478/p2p/"$node2id" | ||
echo "Genesis file has been successfully generated" | ||
;; | ||
|
||
*) | ||
echo "Executing polygon-edge..." | ||
exec "$POLYGON_EDGE_BIN" "$@" | ||
;; | ||
|
||
esac |