You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.4 KiB

# strfry Dockerfile for negentropy interop testing
# Uses Ubuntu for easier dependency management
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && apt-get install -y \
git \
build-essential \
liblmdb-dev \
libsecp256k1-dev \
libflatbuffers-dev \
libzstd-dev \
libssl-dev \
zlib1g-dev \
pkg-config \
libtool \
autoconf \
automake \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
# Clone strfry
RUN git clone https://github.com/hoytech/strfry.git . && \
git submodule update --init
# Build strfry
RUN make setup-golpe && \
make -j$(nproc)
# Runtime image
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y \
liblmdb0 \
libsecp256k1-0 \
libflatbuffers1 \
libzstd1 \
libssl3 \
curl \
jq \
&& rm -rf /var/lib/apt/lists/*
# Install websocat binary (not available in apt)
RUN curl -L -o /usr/local/bin/websocat https://github.com/vi/websocat/releases/download/v1.13.0/websocat.x86_64-unknown-linux-musl && \
chmod +x /usr/local/bin/websocat
WORKDIR /app
COPY --from=builder /build/strfry /app/
RUN mkdir -p /data/strfry-db
# Copy config
COPY strfry.conf /etc/strfry.conf
EXPOSE 7777
HEALTHCHECK --interval=5s --timeout=5s --start-period=10s --retries=3 \
CMD curl -f http://localhost:7777 || exit 1
# Run strfry relay
CMD ["/app/strfry", "--config=/etc/strfry.conf", "relay"]