mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-26 05:26:45 +00:00
50 lines
1.9 KiB
Docker
50 lines
1.9 KiB
Docker
# Define Ubuntu 22.04 LTS as base image
|
|
FROM ubuntu:22.04
|
|
|
|
# Set Sparrow version and expected PGP signature
|
|
ARG SPARROW_VERSION=1.7.0
|
|
ARG PGP_SIG=E94618334C674B40
|
|
|
|
# Update all packages and install requirements
|
|
RUN apt-get update \
|
|
&& apt-get upgrade -y
|
|
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends curl \
|
|
gpg \
|
|
gpg-agent \
|
|
wget \
|
|
ca-certificates \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Switch to /tmp for verification and install
|
|
WORKDIR /tmp
|
|
|
|
# Detect and set architecture to properly download binaries
|
|
ARG TARGETARCH
|
|
RUN case ${TARGETARCH:-amd64} in \
|
|
"arm64") SPARROW_ARCH="aarch64";; \
|
|
"amd64") SPARROW_ARCH="x86_64";; \
|
|
*) echo "Dockerfile does not support this platform"; exit 1 ;; \
|
|
esac \
|
|
# Download Sparrow Server binaries and verification assets
|
|
&& wget --quiet https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-server-${SPARROW_VERSION}-${SPARROW_ARCH}.tar.gz \
|
|
&& wget --quiet https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt \
|
|
&& wget --quiet https://github.com/sparrowwallet/sparrow/releases/download/${SPARROW_VERSION}/sparrow-${SPARROW_VERSION}-manifest.txt.asc \
|
|
&& wget --quiet https://keybase.io/craigraw/pgp_keys.asc \
|
|
# GPG verify, sha256sum verify, and unpack Sparrow Server binaries
|
|
&& gpg --import pgp_keys.asc \
|
|
&& gpg --status-fd 1 --verify sparrow-${SPARROW_VERSION}-manifest.txt.asc \
|
|
| grep -q "GOODSIG ${PGP_SIG}" \
|
|
|| exit 1 \
|
|
&& sha256sum --check sparrow-${SPARROW_VERSION}-manifest.txt --ignore-missing || exit 1 \
|
|
&& tar xf sparrow-server-${SPARROW_VERSION}-${SPARROW_ARCH}.tar.gz -C /opt
|
|
|
|
# Add user and setup directories for Sparrow
|
|
RUN useradd -ms /bin/bash sparrow
|
|
USER sparrow
|
|
|
|
# Switch to home directory
|
|
WORKDIR /home/sparrow
|
|
|
|
# Run Sparrow in terminal mode
|
|
CMD ["/opt/Sparrow/bin/Sparrow", "-t"]
|