LSS Dockerfile/Compose support
This commit is contained in:
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"]
|
||||
Reference in New Issue
Block a user