Browse Source

Added files for docker deployment

feature/dockerfile-arm
Gonzalo Javier Aune 4 years ago
parent
commit
b23c3acf69
  1. 7
      Dockerfile
  2. 5
      docker/aliases.sh
  3. 38
      docker/create_wallet.sh
  4. 38
      docker/entrypoint.sh
  5. 3
      docker/instance_aliases.sh
  6. 6
      docker/lnd.conf.sample
  7. 2
      docker/relay_supervisor.conf

7
Dockerfile

@ -71,9 +71,14 @@ RUN npm install
WORKDIR /relay/ WORKDIR /relay/
RUN apk --no-cache add expect bash
RUN mkdir -p /var/log/supervisor RUN mkdir -p /var/log/supervisor
COPY ./docker/supervisord.conf /etc/supervisord.conf COPY ./docker/supervisord.conf /etc/supervisord.conf
COPY ./docker/lnd_supervisor.conf /etc/supervisor.d/lnd_supervisor.ini COPY ./docker/lnd_supervisor.conf /etc/supervisor.d/lnd_supervisor.ini
COPY ./docker/relay_supervisor.conf /etc/supervisor.d/relay_supervisor.ini COPY ./docker/relay_supervisor.conf /etc/supervisor.d/relay_supervisor.ini
COPY ./docker/aliases.sh /etc/profile.d/aliases.sh
ENV ENV="/etc/profile"
ENTRYPOINT [ "./docker/entrypoint.sh" ] ENTRYPOINT [ "bash", "/relay/docker/entrypoint.sh" ]

5
docker/aliases.sh

@ -0,0 +1,5 @@
#!/bin/bash
alias lncli='command lncli --lnddir=/relay/.lnd/ "$@"'
alias lnd='command lnd --lnddir=/relay/.lnd/ "$@"'

38
docker/create_wallet.sh

@ -0,0 +1,38 @@
#!/usr/bin/expect -f
set WALLET_PASSWORD [lindex $argv 0]
set WALLET_PASSPHRASE [lindex $argv 1]
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
spawn lncli --lnddir=/relay/.lnd/ create
match_max 100000
expect -exact "Input wallet password: "
send -- "$WALLET_PASSWORD\r"
expect -exact "\r
Confirm password:\r
"
send -- "$WALLET_PASSWORD\r"
expect -exact "\r
\r
Do you have an existing cipher seed mnemonic you want to use? (Enter y/n): "
send -- "n\r"
expect -exact "n\r
\r
Your cipher seed can optionally be encrypted.\r
Input your passphrase if you wish to encrypt it (or press enter to proceed without a cipher seed passphrase): "
send -- "$WALLET_PASSPHRASE\r"
expect -exact "\r
Confirm password:\r
"
send -- "$WALLET_PASSPHRASE\r"
expect eof

38
docker/entrypoint.sh

@ -1,6 +1,38 @@
# export NODE_DOMAIN=$(curl $ECS_CONTAINER_METADATA_URI | echo $(jq -r .DockerName).$NODE_DOMAIN) #!/bin/bash
export NODE_DOMAIN=lvh.me
# turn on bash's job control
set -m
echo "Setting ENV vars..."
export NODE_DOMAIN=$(curl $ECS_CONTAINER_METADATA_URI | echo $(jq -r .DockerName).$NODE_DOMAIN)
# export NODE_DOMAIN=lvh.me
export NODE_ALIAS=$HOSTNAME export NODE_ALIAS=$HOSTNAME
export NODE_IP=$NODE_SCHEME://$NODE_DOMAIN export NODE_IP=$NODE_SCHEME://$NODE_DOMAIN
/usr/bin/supervisord echo "Starting supervisor..."
# Start the primary process and put it in the background
/usr/bin/supervisord &
sleep 5
echo "Creating wallet..."
WALLET_PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c20)
WALLET_PASSPHRASE=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c20)
echo $WALLET_PASSWORD >> /relay/.lnd/.lndpwd
echo $WALLET_PASSPHRASE >> /relay/.lnd/.lndpwd
expect /relay/docker/create_wallet.sh $WALLET_PASSWORD $WALLET_PASSPHRASE >> /relay/.lnd/.tempseed
sed -e '2,14d' < /relay/.lnd/.tempseed >> /relay/.lnd/.lndseed
rm /relay/.lnd/.tempseed
sleep 5
echo "Starting relay..."
supervisorctl start relay
# now we bring the primary process back into the foreground
# and leave it there
fg %1

3
docker/instance_aliases.sh

@ -0,0 +1,3 @@
#!/bin/bash
alias nodessh='_nodessh(){ docker exec -it "$1" /bin/bash;}; _nodessh'

6
docker/lnd.conf.sample

@ -1,11 +1,11 @@
listen=0.0.0.0:9735
rpclisten=0.0.0.0:10009
bitcoin.mainnet=1 bitcoin.mainnet=1
bitcoin.active=1 bitcoin.active=1
bitcoin.node=neutrino bitcoin.node=neutrino
accept-keysend=1 accept-keysend=1
listen=0.0.0.0:9735
rpclisten=0.0.0.0:10009
ignore-historical-gossip-filters=true ignore-historical-gossip-filters=true
nobootstrap=true nobootstrap=true
numgraphsyncpeers=7 numgraphsyncpeers=7

2
docker/relay_supervisor.conf

@ -2,7 +2,7 @@
user=root user=root
command=sh -c 'npm run start-ecs --prefix /relay/' command=sh -c 'npm run start-ecs --prefix /relay/'
startretries=999999999999999999999999999 startretries=999999999999999999999999999
autostart=true autostart=false
autorestart=true autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log

Loading…
Cancel
Save