From 3d8a77cdaa01dd001c210f0f68a0c2d852d29bfa Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Tue, 21 Jul 2020 20:48:52 -0700 Subject: [PATCH] Run in main docker (#113) * Docker-compose in main docker folder working * Fix rpc host in start lnd script * Remove link alias for btcd in btcctl * Remove docker-compose links alias for btcd in lnd container * Remove unused open ports in itest docker-compose * Remove unused environment variabls from itest docker-compose * Fix port conflicts between itest and docker docker foler docker-compose containers --- docker/btcd/Dockerfile | 4 +- docker/btcd/start-btcctl.sh | 5 ++- docker/config.ini | 14 ++++--- docker/docker-compose.yml | 58 +++++++++++++++++++++++------ docker/lnd/start-lnd.sh | 3 +- docker/sqkserver/Dockerfile | 2 +- itests/docker-compose.yml | 73 ++++++++++++++----------------------- 7 files changed, 90 insertions(+), 69 deletions(-) diff --git a/docker/btcd/Dockerfile b/docker/btcd/Dockerfile index adc78005..e592b505 100644 --- a/docker/btcd/Dockerfile +++ b/docker/btcd/Dockerfile @@ -36,8 +36,6 @@ COPY --from=builder /go/bin/gencerts /bin/ COPY "docker/btcd/start-btcctl.sh" . COPY "docker/btcd/start-btcd.sh" . -RUN "/bin/gencerts" -h - RUN apk add --no-cache \ bash \ ca-certificates \ @@ -47,7 +45,7 @@ RUN apk add --no-cache \ && chmod +x start-btcd.sh \ # Manually generate certificate and add all domains, it is needed to connect # "btcctl" and "lnd" to "btcd" over docker links. -&& "/bin/gencerts" --host="btcd" --host="rpcserver" --host="blockchain" --directory="/rpc" --force +&& "/bin/gencerts" --host="btcd" --directory="/rpc" --force # Create a volume to house pregenerated RPC credentials. This will be # shared with any lnd, btcctl containers so they can securely query btcd's RPC diff --git a/docker/btcd/start-btcctl.sh b/docker/btcd/start-btcctl.sh index 7ff1aefb..fa2a4ff3 100644 --- a/docker/btcd/start-btcctl.sh +++ b/docker/btcd/start-btcctl.sh @@ -39,6 +39,7 @@ set_default() { } # Set default variables if needed. +RPCHOST=$(set_default "$RPCHOST" "localhost") RPCUSER=$(set_default "$RPCUSER" "devuser") RPCPASS=$(set_default "$RPCPASS" "devpass") NETWORK=$(set_default "$NETWORK" "simnet") @@ -50,9 +51,9 @@ fi PARAMS=$(echo $PARAMS \ "--rpccert=/rpc/rpc.cert" \ + "--rpcserver=$RPCHOST" \ "--rpcuser=$RPCUSER" \ - "--rpcpass=$RPCPASS" \ - "--rpcserver=rpcserver" \ + "--rpcpass=$RPCPASS" ) PARAMS="$PARAMS $@" diff --git a/docker/config.ini b/docker/config.ini index 5bec287e..6c067e1d 100644 --- a/docker/config.ini +++ b/docker/config.ini @@ -9,17 +9,21 @@ rpc_port=10009 tls_cert_path=/root/.lnd/tls.cert macaroon_path=/root/.lnd/data/chain/bitcoin/testnet/admin.macaroon -[electrum] -rpc_host= -rpc_port= -rpc_user= -rpc_pass= +[bitcoin] +rpc_host=btcd +rpc_port=18556 +rpc_user=devuser +rpc_pass=devpass [server] rpc_host=0.0.0.0 rpc_port=8774 price=10 +[admin] +rpc_host=0.0.0.0 +rpc_port=8994 + [postgresql] host=db database=squeakserver diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 0e727909..b2b690ed 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -11,6 +11,21 @@ services: - postgres_dir:/var/lib/postgresql/data - ../createdb.sql:/docker-entrypoint-initdb.d/init.sql + btcd: + image: btcd + container_name: btcd + build: + context: ../ + dockerfile: docker/btcd/Dockerfile + volumes: + - shared:/rpc + - bitcoin:/data + environment: + - NETWORK=testnet + ports: + - 18334:18334 + entrypoint: ["./start-btcd.sh"] + lnd: image: lnd container_name: lnd @@ -18,14 +33,13 @@ services: context: ../ dockerfile: docker/lnd/Dockerfile environment: - - RPCUSER - - RPCPASS + - RPCHOST=btcd - NETWORK=testnet - - CHAIN - - DEBUG - - BACKEND=neutrino volumes: + - shared:/rpc - lnd_dir:/root/.lnd + links: + - "btcd:btcd" ports: - 9735:9735 entrypoint: ["./start-lnd.sh"] @@ -39,11 +53,6 @@ services: volumes: - lnd_dir:/root/.lnd - ./config.ini:/app/config.ini - ports: - - 8774:8774 - - 8994:8994 - - 18774:18774 - - 18994:18994 links: - "lnd:lnd" depends_on: @@ -52,8 +61,35 @@ services: - net.ipv6.conf.all.disable_ipv6=0 command: ["./wait-for-it.sh", "db:5432", "--", "runsqueakserver", "--config", "config.ini", "--log-level", "DEBUG", "run-server"] + envoy: + image: envoy + container_name: envoy + build: + context: ../ + dockerfile: docker/envoy/Dockerfile + ports: + - 8080:8080 + links: + - "sqkserver:sqkserver" + + frontend: + image: frontend + container_name: frontend + build: + context: ../ + dockerfile: docker/frontend/Dockerfile + ports: + - 8081:8081 + volumes: - # lnd_dir volume is needed for sharing tht tls certificate + bitcoin: + driver: local + + # shared volume is needed for sharing the btcd certificate + shared: + driver: local + + # lnd_dir volume is needed for sharing the lnd tls certificate lnd_dir: driver: local diff --git a/docker/lnd/start-lnd.sh b/docker/lnd/start-lnd.sh index 825f3be9..9055fe48 100644 --- a/docker/lnd/start-lnd.sh +++ b/docker/lnd/start-lnd.sh @@ -39,6 +39,7 @@ set_default() { } # Set default variables if needed. +RPCHOST=$(set_default "$RPCHOST" "localhost") RPCUSER=$(set_default "$RPCUSER" "devuser") RPCPASS=$(set_default "$RPCPASS" "devpass") DEBUG=$(set_default "$DEBUG" "info") @@ -65,7 +66,7 @@ else "--$CHAIN.$NETWORK" \ "--$CHAIN.node"="$BACKEND" \ "--$BACKEND.rpccert"="/rpc/rpc.cert" \ - "--$BACKEND.rpchost"="blockchain" \ + "--$BACKEND.rpchost"="$RPCHOST" \ "--$BACKEND.rpcuser"="$RPCUSER" \ "--$BACKEND.rpcpass"="$RPCPASS" \ --rpclisten=0.0.0.0:10009 \ diff --git a/docker/sqkserver/Dockerfile b/docker/sqkserver/Dockerfile index e6e3ab92..755226de 100644 --- a/docker/sqkserver/Dockerfile +++ b/docker/sqkserver/Dockerfile @@ -19,7 +19,7 @@ RUN git clone https://github.com/googleapis/googleapis.git # Copy the source code. COPY squeakserver ./squeakserver COPY proto ./proto -COPY setup.py setup.cfg MANIFEST.in README.md init.sql install-rpc.sh ./ +COPY setup.py setup.cfg MANIFEST.in README.md init.sql install-rpc.sh wait-for-it.sh ./ # Install the gRPC files. RUN chmod +x install-rpc.sh && \ diff --git a/itests/docker-compose.yml b/itests/docker-compose.yml index 5373e516..b765b75f 100644 --- a/itests/docker-compose.yml +++ b/itests/docker-compose.yml @@ -11,16 +11,10 @@ services: - test_shared:/rpc - test_bitcoin:/data environment: - - RPCUSER - - RPCPASS - - NETWORK - - DEBUG + - NETWORK=simnet - MINING_ADDRESS ports: - - 8334:8334 - - 18334:18334 - 18556:18556 - - 28902:28902 entrypoint: ["./start-btcd.sh"] btcctl: @@ -33,13 +27,11 @@ services: - test_shared:/rpc - test_bitcoin:/data environment: - - RPCUSER - - RPCPASS - - NETWORK - - DEBUG + - NETWORK=simnet + - RPCHOST=btcd - MINING_ADDRESS links: - - "btcd:rpcserver" + - "btcd:btcd" entrypoint: ["./start-btcctl.sh"] lnd_client: @@ -49,16 +41,13 @@ services: context: ../ dockerfile: docker/lnd/Dockerfile environment: - - RPCUSER - - RPCPASS - - NETWORK - - CHAIN - - DEBUG + - NETWORK=simnet + - RPCHOST=btcd volumes: - test_shared:/rpc - test_lnd_client_dir:/root/.lnd links: - - "btcd:blockchain" + - "btcd:btcd" entrypoint: ["./start-lnd.sh"] lnd_server: @@ -68,11 +57,8 @@ services: context: ../ dockerfile: docker/lnd/Dockerfile environment: - - RPCUSER - - RPCPASS - - NETWORK - - CHAIN - - DEBUG + - NETWORK=simnet + - RPCHOST=btcd volumes: - test_shared:/rpc - test_lnd_server_dir:/root/.lnd @@ -100,11 +86,6 @@ services: - test_shared:/rpc - test_lnd_server_dir:/root/.lnd - ./config.ini:/app/config.ini - ports: - - 8774:8774 - - 8994:8994 - - 18774:18774 - - 18994:18994 links: - "btcd:btcd" - "lnd_server:lnd" @@ -127,25 +108,25 @@ services: - "lnd_client:lnd" command: tail -f /dev/null - envoy: - image: envoy - container_name: test_envoy - build: - context: ../ - dockerfile: docker/envoy/Dockerfile - ports: - - 8080:8080 - links: - - "sqkserver:sqkserver" + # envoy: + # image: envoy + # container_name: test_envoy + # build: + # context: ../ + # dockerfile: docker/envoy/Dockerfile + # ports: + # - 8080:8080 + # links: + # - "sqkserver:sqkserver" - frontend: - image: frontend - container_name: test_frontend - build: - context: ../ - dockerfile: docker/frontend/Dockerfile - ports: - - 8081:8081 + # frontend: + # image: frontend + # container_name: test_frontend + # build: + # context: ../ + # dockerfile: docker/frontend/Dockerfile + # ports: + # - 8081:8081 volumes: # btcctl and lnd containers.