vls-container/lss/Dockerfile
2024-08-23 16:34:04 +00:00

63 lines
1.4 KiB
Docker

# 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"]