2021-02-18 22:20:55 +01:00
|
|
|
# Build image
|
|
|
|
FROM python:3.7-slim as builder
|
2020-04-21 14:12:29 +02:00
|
|
|
|
2021-02-18 22:20:55 +01:00
|
|
|
# Setup virtualenv
|
|
|
|
ENV VIRTUAL_ENV=/opt/venv
|
2021-02-19 15:50:34 +01:00
|
|
|
RUN python -m venv $VIRTUAL_ENV
|
2021-02-18 22:20:55 +01:00
|
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
|
|
|
|
|
|
# Install build deps
|
|
|
|
RUN apt-get update
|
2022-02-22 08:41:19 +01:00
|
|
|
RUN apt-get install -y --no-install-recommends build-essential pkg-config
|
2021-11-12 08:02:13 +01:00
|
|
|
RUN python -m pip install --upgrade pip
|
2022-02-22 08:41:19 +01:00
|
|
|
RUN pip install wheel
|
2021-02-18 22:20:55 +01:00
|
|
|
|
|
|
|
# Install runtime deps
|
|
|
|
COPY requirements.txt /tmp/requirements.txt
|
|
|
|
RUN pip install -r /tmp/requirements.txt
|
|
|
|
|
|
|
|
# Install c-lightning specific deps
|
|
|
|
RUN pip install pylightning
|
|
|
|
|
|
|
|
# Install LND specific deps
|
2021-11-12 08:02:13 +01:00
|
|
|
RUN pip install lndgrpc
|
2021-02-18 22:20:55 +01:00
|
|
|
|
|
|
|
# Production image
|
|
|
|
FROM python:3.7-slim as lnbits
|
|
|
|
|
2021-02-19 15:49:05 +01:00
|
|
|
# Run as non-root
|
|
|
|
USER 1000:1000
|
|
|
|
|
2021-02-18 22:20:55 +01:00
|
|
|
# Copy over virtualenv
|
|
|
|
ENV VIRTUAL_ENV="/opt/venv"
|
2021-02-19 15:49:05 +01:00
|
|
|
COPY --from=builder --chown=1000:1000 $VIRTUAL_ENV $VIRTUAL_ENV
|
2021-02-18 22:20:55 +01:00
|
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
|
|
|
|
|
|
# Copy in app source
|
2020-04-21 14:12:29 +02:00
|
|
|
WORKDIR /app
|
2021-02-19 15:49:05 +01:00
|
|
|
COPY --chown=1000:1000 lnbits /app/lnbits
|
2020-04-21 14:12:29 +02:00
|
|
|
|
2022-02-22 08:41:57 +01:00
|
|
|
ENV LNBITS_PORT="5000"
|
|
|
|
ENV LNBITS_HOST="0.0.0.0"
|
|
|
|
|
2020-04-21 14:12:29 +02:00
|
|
|
EXPOSE 5000
|
2021-02-18 22:20:55 +01:00
|
|
|
|
2022-02-22 08:41:57 +01:00
|
|
|
CMD ["sh", "-c", "uvicorn lnbits.__main__:app --port $LNBITS_PORT --host $LNBITS_HOST"]
|