diff --git a/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile b/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile index b6ef792..2417de2 100644 --- a/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile +++ b/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile @@ -1,9 +1,13 @@ +# Electrs build stage FROM rust:latest AS builder ARG COMMIT=253040e346664976c12e6c214ee2858a4dad2e06 +ENV WS_PORT=1234 +ENV ELECTRUM_PORT=50001 + RUN apt-get update -RUN apt-get install -y clang cmake +RUN apt-get install -y clang cmake RUN git clone https://github.com/blockstream/electrs && cd electrs && git checkout ${COMMIT} @@ -11,12 +15,24 @@ WORKDIR /electrs RUN cargo build --release --bin electrs +FROM debian:stable-slim AS websocat-installer + +RUN apt-get update +RUN apt-get install -y wget + +RUN wget https://github.com/vi/websocat/releases/download/v1.11.0/websocat.x86_64-unknown-linux-musl \ + && chmod +x websocat.x86_64-unknown-linux-musl \ + && mv websocat.x86_64-unknown-linux-musl /usr/local/bin/websocat + +# Final stage FROM debian:stable-slim -WORKDIR /build +COPY --from=builder /electrs/target/release/electrs /usr/local/bin +COPY --from=websocat-installer /usr/local/bin/websocat /usr/local/bin -COPY --from=builder /electrs/target/release/electrs /build +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh STOPSIGNAL SIGINT -ENTRYPOINT ["/build/electrs"] +ENTRYPOINT /entrypoint.sh ${WS_PORT} ${ELECTRUM_PORT} diff --git a/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile.liquid b/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile.liquid index ea05970..67a2d36 100644 --- a/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile.liquid +++ b/a808b51d0d9301fa82390b985c57551966001f9b/Dockerfile.liquid @@ -2,6 +2,9 @@ FROM rust:latest AS builder ARG COMMIT=a808b51d0d9301fa82390b985c57551966001f9b +ENV WS_PORT=1234 +ENV ELECTRUM_PORT=50001 + RUN apt-get update RUN apt-get install -y clang cmake @@ -11,12 +14,25 @@ WORKDIR /electrs RUN cargo build --features liquid --release --bin electrs +FROM debian:stable-slim AS websocat-installer + +RUN apt-get update +RUN apt-get install -y wget + +RUN wget https://github.com/vi/websocat/releases/download/v1.11.0/websocat.x86_64-unknown-linux-musl \ + && chmod +x websocat.x86_64-unknown-linux-musl \ + && mv websocat.x86_64-unknown-linux-musl /usr/local/bin/websocat + FROM debian:stable-slim WORKDIR /build -COPY --from=builder /electrs/target/release/electrs /build +COPY --from=builder /electrs/target/release/electrs /usr/local/bin +COPY --from=websocat-installer /usr/local/bin/websocat /usr/local/bin + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh STOPSIGNAL SIGINT -ENTRYPOINT ["/build/electrs"] +ENTRYPOINT /entrypoint.sh ${WS_PORT} ${ELECTRUM_PORT} diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..e05ca78 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +PORT=$1 +ELECTRUM_RPC_PORT=$2 + +if [ -z "$PORT" ] || [ -z "$ELECTRUM_RPC_PORT" ]; then + echo "Usage: $0 " + exit 1 +fi + +echo "Starting websocket server on port $PORT" + +set -m +electrs& +websocat -b ws-l:127.0.0.1:$PORT tcp:127.0.0.1:$ELECTRUM_RPC_PORT& +fg %1 \ No newline at end of file