LSS Dockerfile/Compose support
This commit is contained in:
parent
4c1d5355d7
commit
35f8e2d706
5
.env
5
.env
@ -15,4 +15,7 @@ TXOO_REPO=https://gitlab.com/lightning-signer/txoo.git
|
|||||||
TXOO_GIT_HASH=6f0718e3f2b9406df5e3cd73306f473199141da0
|
TXOO_GIT_HASH=6f0718e3f2b9406df5e3cd73306f473199141da0
|
||||||
# vls version v0.11.0 (2024-06-06 15:09:25 +0000)
|
# vls version v0.11.0 (2024-06-06 15:09:25 +0000)
|
||||||
VLS_REPO=https://gitlab.com/lightning-signer/validating-lightning-signer.git
|
VLS_REPO=https://gitlab.com/lightning-signer/validating-lightning-signer.git
|
||||||
VLS_GIT_HASH=f853773d0252430b8b24f181562a8afdd42293fa
|
VLS_GIT_HASH=d2590ba34a388a016bb91307864e993fb3cc3d84
|
||||||
|
# lss version v0.1.0
|
||||||
|
LSS_REPO=https://gitlab.com/lightning-signer/validating-lightning-signer.git
|
||||||
|
LSS_GIT_HASH=d2590ba34a388a016bb91307864e993fb3cc3d84
|
||||||
|
@ -32,6 +32,11 @@ build_txoo:
|
|||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- ./scripts/build_image_cache.sh txood
|
- ./scripts/build_image_cache.sh txood
|
||||||
|
build_lss:
|
||||||
|
tags: [ saas-linux-large-amd64 ]
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- ./scripts/build_image_cache.sh lss
|
||||||
build_vls:
|
build_vls:
|
||||||
tags: [ saas-linux-large-amd64 ]
|
tags: [ saas-linux-large-amd64 ]
|
||||||
stage: build
|
stage: build
|
||||||
|
@ -78,6 +78,31 @@ services:
|
|||||||
- BITCOIN_NETWORK=testnet
|
- BITCOIN_NETWORK=testnet
|
||||||
- BITCOIND_RPC_URL=http://rpcuser:VLSsigner1@bitcoind:18332
|
- BITCOIND_RPC_URL=http://rpcuser:VLSsigner1@bitcoind:18332
|
||||||
|
|
||||||
|
lss:
|
||||||
|
build:
|
||||||
|
context: ./lss
|
||||||
|
args:
|
||||||
|
- LSS_REPO
|
||||||
|
- LSS_GIT_HASH
|
||||||
|
image: lss:${IMAGE_TAG:-latest}
|
||||||
|
container_name: lss-test
|
||||||
|
ports:
|
||||||
|
- 55551:55551
|
||||||
|
expose:
|
||||||
|
- 55551
|
||||||
|
profiles:
|
||||||
|
- lss
|
||||||
|
networks:
|
||||||
|
- lightning
|
||||||
|
volumes:
|
||||||
|
- lss_data:/home/lss/.lss
|
||||||
|
environment:
|
||||||
|
- LSS_DATABASE=${LSS_DATABASE:-sled}
|
||||||
|
- PG_HOST
|
||||||
|
- PG_USER
|
||||||
|
- PG_PASS
|
||||||
|
- PG_DB
|
||||||
|
|
||||||
vls:
|
vls:
|
||||||
build:
|
build:
|
||||||
context: ./vlsd
|
context: ./vlsd
|
||||||
@ -89,8 +114,9 @@ services:
|
|||||||
profiles:
|
profiles:
|
||||||
- vls
|
- vls
|
||||||
command:
|
command:
|
||||||
- --log-level=info
|
--log-level=info
|
||||||
- --connect=http://core-lightning:7701
|
--connect=http://core-lightning:7701
|
||||||
|
${LSS_REMOTE_URL:+--lss=$LSS_REMOTE_URL}
|
||||||
networks:
|
networks:
|
||||||
- lightning
|
- lightning
|
||||||
volumes:
|
volumes:
|
||||||
@ -100,6 +126,10 @@ services:
|
|||||||
- VLS_PERMISSIVE=1
|
- VLS_PERMISSIVE=1
|
||||||
- RUST_LOG=info
|
- RUST_LOG=info
|
||||||
- BITCOIND_RPC_URL=http://rpcuser:VLSsigner1@bitcoind:18332
|
- BITCOIND_RPC_URL=http://rpcuser:VLSsigner1@bitcoind:18332
|
||||||
|
depends_on:
|
||||||
|
lss:
|
||||||
|
condition: service_started
|
||||||
|
required: false
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
bitcoin_data:
|
bitcoin_data:
|
||||||
@ -111,6 +141,9 @@ volumes:
|
|||||||
txoo_data:
|
txoo_data:
|
||||||
name: txoo_data
|
name: txoo_data
|
||||||
external: true
|
external: true
|
||||||
|
lss_data:
|
||||||
|
name: lss_data
|
||||||
|
external: true
|
||||||
vls_data:
|
vls_data:
|
||||||
name: vls_data
|
name: vls_data
|
||||||
external: true
|
external: true
|
||||||
|
62
lss/Dockerfile
Normal file
62
lss/Dockerfile
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# build lss
|
||||||
|
FROM --platform=${TARGETPLATFORM:-${BUILDPLATFORM:-linux/amd64}} alpine:3.18 as builder
|
||||||
|
|
||||||
|
WORKDIR /build
|
||||||
|
|
||||||
|
RUN apk update && \
|
||||||
|
apk add \
|
||||||
|
build-base \
|
||||||
|
cargo \
|
||||||
|
git \
|
||||||
|
grpc \
|
||||||
|
protobuf \
|
||||||
|
protobuf-dev \
|
||||||
|
rust
|
||||||
|
|
||||||
|
ARG LSS_GIT_HASH \
|
||||||
|
LSS_REPO
|
||||||
|
RUN echo "building lss from hash: $LSS_GIT_HASH"
|
||||||
|
RUN git clone $LSS_REPO lss
|
||||||
|
|
||||||
|
RUN cd lss && \
|
||||||
|
git checkout $LSS_GIT_HASH && \
|
||||||
|
cargo install --locked --path ./lightning-storage-server --bin lssd --profile release --root /usr/local/ && \
|
||||||
|
cargo clean
|
||||||
|
|
||||||
|
# lss runner
|
||||||
|
FROM --platform=${TARGETPLATFORM:-${BUILDPLATFORM:-linux/amd64}} alpine:3.18 as runner
|
||||||
|
|
||||||
|
ARG LSS_DATA=/root/.lssd
|
||||||
|
|
||||||
|
RUN apk update && \
|
||||||
|
apk add \
|
||||||
|
build-base \
|
||||||
|
curl-dev \
|
||||||
|
protobuf \
|
||||||
|
bind-tools \
|
||||||
|
tini
|
||||||
|
|
||||||
|
COPY --from=builder /usr/local/bin/lssd /usr/local/bin/lssd
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
VOLUME ["${LSS_DATA}"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Environment variables with default fallbacks
|
||||||
|
ENV LSS_PORT=${LSS_PORT:-55551}
|
||||||
|
ENV LSS_INTERFACE=${LSS_INTERFACE:-0.0.0.0}
|
||||||
|
ENV LSS_CLEARDB=${LSS_CLEARDB:-false}
|
||||||
|
ENV LSS_DATADIR=${LSS_DATADIR:-datadir}
|
||||||
|
ENV LSS_DATABASE=${LSS_DATABASE:-sled}
|
||||||
|
ENV PG_HOST=${PG_HOST:-}
|
||||||
|
ENV PG_USER=${PG_USER:-dev}
|
||||||
|
ENV PG_PASSWORD=${PG_PASSWORD:-}
|
||||||
|
ENV PG_DB=${PG_DB:-dev}
|
||||||
|
|
||||||
|
# Expose LSS port
|
||||||
|
EXPOSE ${LSS_PORT}
|
||||||
|
|
||||||
|
# Run lssd with the build arguments passed at runtime
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
24
lss/README.md
Normal file
24
lss/README.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# LSS Setup
|
||||||
|
|
||||||
|
## Building the docker image
|
||||||
|
|
||||||
|
### Ubuntu/Linux
|
||||||
|
```bash
|
||||||
|
sudo docker build \
|
||||||
|
--build-arg LSS_REPO=https://gitlab.com/lightning-signer/validating-lightning-signer.git \
|
||||||
|
--build-arg LSS_GIT_HASH=d2590ba34a388a016bb91307864e993fb3cc3d84 \
|
||||||
|
-t lss .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
```bash
|
||||||
|
docker build --build-arg LSS_REPO=https://gitlab.com/lightning-signer/validating-lightning-signer.git --build-arg LSS_GIT_HASH=d2590ba34a388a016bb91307864e993fb3cc3d84 -t lss .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running the container
|
||||||
|
```bash
|
||||||
|
docker compose --profile lss -f docker-compose.yml up lss
|
||||||
|
```
|
||||||
|
|
||||||
|
## Postgres Setup
|
||||||
|
To use LSS with postgres, change the environment variable LSS_DATABASE to postgres, you also need to supply the arguments PG_HOST, PG_USER, PG_PASS, PG_DB to a real postgres database
|
58
lss/docker-compose.yml
Normal file
58
lss/docker-compose.yml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
version: "3.8"
|
||||||
|
services:
|
||||||
|
lss:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
- LSS_REPO
|
||||||
|
- LSS_GIT_HASH
|
||||||
|
image: lss:${IMAGE_TAG:-latest}
|
||||||
|
container_name: lss-test
|
||||||
|
ports:
|
||||||
|
- 55551:55551
|
||||||
|
expose:
|
||||||
|
- 55551
|
||||||
|
networks:
|
||||||
|
- lightning
|
||||||
|
volumes:
|
||||||
|
- lss_data:/home/lss/.lss
|
||||||
|
environment:
|
||||||
|
- LSS_DATABASE=${LSS_DATABASE:-sled}
|
||||||
|
- PG_HOST
|
||||||
|
- PG_USER
|
||||||
|
- PG_PASS
|
||||||
|
- PG_DB
|
||||||
|
vls:
|
||||||
|
build:
|
||||||
|
context: ../vlsd
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
- VLS_GIT_HASH
|
||||||
|
image: vlsd
|
||||||
|
container_name: vlsd-standalone
|
||||||
|
command:
|
||||||
|
--connect=http://core-lightning:7701
|
||||||
|
--lss=http://lss:55551
|
||||||
|
networks:
|
||||||
|
- lightning
|
||||||
|
volumes:
|
||||||
|
- vls_data:/home/vls/.lightning-signer
|
||||||
|
environment:
|
||||||
|
- BITCOIND_RPC_URL=$BITCOIND_RPC_URL
|
||||||
|
- VLS_NETWORK=testnet
|
||||||
|
depends_on:
|
||||||
|
lss:
|
||||||
|
condition: service_healthy
|
||||||
|
required: false
|
||||||
|
|
||||||
|
networks:
|
||||||
|
lightning:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
vls_data:
|
||||||
|
name: vls_data
|
||||||
|
external: true
|
||||||
|
lss_data:
|
||||||
|
name: lss_data
|
||||||
|
external: true
|
2
lss/entrypoint.sh
Normal file
2
lss/entrypoint.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
/usr/local/bin/lssd --port "$LSS_PORT" --interface "$LSS_INTERFACE" --database "$LSS_DATABASE"
|
Loading…
x
Reference in New Issue
Block a user