Browse Source

Change the way docker-compose is installed

master
nolim1t 5 years ago
parent
commit
057e69e4b2
No known key found for this signature in database GPG Key ID: F6287B82CC84BCBD
  1. 10
      stage2/04-docker-compose/01-run.sh
  2. 11
      stage2/04-docker-compose/files/build/lnd-unlock/Dockerfile
  3. 46
      stage2/04-docker-compose/files/build/lnd-unlock/unlock.sh
  4. 51
      stage2/04-docker-compose/files/docker-compose.yml

10
stage2/04-docker-compose/01-run.sh

@ -1,17 +1,20 @@
# Install docker via pip3 (within chroot)
echo "Installing docker-compose from pip3, and also setting up the box folder structure"
on_chroot << EOF
pip3 install docker-compose
cd /home/${FIRST_USER_NAME}
wget -qO- "https://raw.githubusercontent.com/lncm/thebox-compose-system/master/install-box.sh" | sh
chown -R ${FIRST_USER_NAME}.${FIRST_USER_NAME} /home/${FIRST_USER_NAME}
EOF
# Maybe generate docker-compose file so we can use it
chmod 644 files/docker-compose.yml
chmod 755 files/compose-service
cp files/docker-compose.yml ${ROOTFS_DIR}/home/${FIRST_USER_NAME}/docker-compose.yml
# These can be probabably removed
cp files/umbrel-createwallet.py ${ROOTFS_DIR}/home/${FIRST_USER_NAME}/umbrel-createwallet.py
cp files/umbrel-unlock.py ${ROOTFS_DIR}/home/${FIRST_USER_NAME}/umbrel-unlock.py
cp -fr files/build ${ROOTFS_DIR}/home/${FIRST_USER_NAME}
# Docker compose service
on_chroot << EOF
@ -27,7 +30,6 @@ EOF
echo "Copying the compose service to rootfs (etc/init.d)"
cp files/compose-service ${ROOTFS_DIR}/etc/init.d/umbrelbox
cp files/compose-service ${ROOTFS_DIR}/home/${FIRST_USER_NAME}/umbrelbox
on_chroot << EOF
cd /etc/rc2.d

11
stage2/04-docker-compose/files/build/lnd-unlock/Dockerfile

@ -1,11 +0,0 @@
FROM alpine:3.10
RUN apk add --no-cache curl jq
RUN mkdir /lnd/
COPY unlock.sh /bin/unlock
RUN chmod +x /bin/unlock
ENTRYPOINT ["unlock"]

46
stage2/04-docker-compose/files/build/lnd-unlock/unlock.sh

@ -1,46 +0,0 @@
#!/bin/sh
HOST=localhost:8080
TLS_CERT=/lnd/tls.cert
MACAROON="$(xxd -p /run/secrets/lnd-admin | tr -d '\n')"
PASS="$(cat /run/secrets/lnd-password | tr -d '\n' | base64 | tr -d '\n')"
UNLOCK_PAYLOAD="$(jq -nc --arg wallet_password ${PASS} '{$wallet_password}')"
lncurl() {
url_path=$1
data=$2
curl --fail --silent --show-error \
--cacert "${TLS_CERT}" \
--header "Grpc-Metadata-macaroon: ${MACAROON}" \
--data "${data}" \
"https://${HOST}/v1/${url_path}"
}
while true; do
# First make sure that port is open
while ! nc -z localhost 8080; do
>&2 echo "Waiting for ${HOST} port to open…"
sleep 3
done
>&2 echo "Port ${HOST} is open"
# Wait a bit more in case the port was just opened
sleep 1
>&2 echo "Trying ${HOST}/getinfo…"
INFO=$(lncurl getinfo)
if [ "$?" = "0" ]; then
>&2 echo "Response: ${INFO}"
alias="$(echo "${INFO}" | jq '.alias')"
>&2 echo "Wallet for ${alias} unlocked!"
exit 0
fi
>&2 echo "${HOST}/getinfo FAILED, out=${INFO}"
>&2 echo "Trying ${HOST}/unlockwallet…"
RESULT=$(lncurl unlockwallet "${UNLOCK_PAYLOAD}")
>&2 echo "${HOST}/unlockwallet completed with: exit-code=$?, out=${RESULT}"
sleep 16
done

51
stage2/04-docker-compose/files/docker-compose.yml

@ -1,51 +0,0 @@
version: '3.7'
x-logging: &default-logging
driver: journald
options:
tag: "{{.Name}}"
x-utility: &default-utility
image: "alpine:3.11"
logging: *default-logging
network_mode: host
services:
web:
image: nginx:1.17.8
logging: *default-logging
volumes:
- ${HOME}/nginx:/etc/nginx
restart: on-failure
network_mode: host
bitcoin:
image: lncm/bitcoind:v0.19.0.1
logging: *default-logging
volumes:
- ${HOME}/bitcoin:/root/.bitcoin
restart: on-failure
network_mode: host
lnd:
image: lncm/lnd:v0.8.0-experimental
logging: *default-logging
volumes:
- ${HOME}/lnd:/root/.lnd
- /var/lib/tor:/var/lib/tor
- /run/tor:/run/tor
restart: on-failure
depends_on: [ bitcoin, web ]
network_mode: host
lnd-unlock:
build: ${HOME}/build/lnd-unlock/
depends_on: [ lnd ]
logging: *default-logging
secrets:
- lnd-password
- lnd-admin
volumes:
- "${HOME}/lnd/tls.cert:/lnd/tls.cert:ro"
network_mode: host
secrets:
lnd-password:
file: ${HOME}/secrets/lnd-password.txt
lnd-admin:
file: ${HOME}/lnd/data/chain/bitcoin/mainnet/admin.macaroon
Loading…
Cancel
Save