Avoid root when installing cbpi

This commit is contained in:
Philipp Grathwohl 2021-12-02 22:21:16 +01:00
parent 80bdac45ce
commit 0c380d5912

View file

@ -3,7 +3,7 @@ RUN apk --no-cache add curl && mkdir /downloads
# Download installation files
RUN curl https://github.com/avollkopf/craftbeerpi4-ui/archive/main.zip -L -o ./downloads/cbpi-ui.zip
FROM python:3.7
FROM python:3.9
# Install dependencies
RUN apt-get update \
@ -14,28 +14,39 @@ RUN apt-get install --no-install-recommends -y \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
RUN python -m pip install --upgrade pip setuptools wheel
ENV VIRTUAL_ENV=/opt/venv
WORKDIR /cbpi
# Create non-root user working directory
RUN groupadd -g 1000 -r craftbeerpi \
&& useradd -u 1000 -r -s /bin/false -g craftbeerpi craftbeerpi \
&& chown craftbeerpi:craftbeerpi /cbpi
# Install craftbeerpi from source
COPY . /cbpi-src
RUN pip3 install --no-cache-dir /cbpi-src
# Install craftbeerpi-ui
COPY --from=download /downloads /downloads
RUN pip3 install --no-cache-dir /downloads/cbpi-ui.zip
# Clean up installation files
RUN rm -rf /downloads /cbpi-src
&& mkdir /cbpi \
&& chown craftbeerpi:craftbeerpi /cbpi \
&& mkdir -p $VIRTUAL_ENV \
&& chown -R craftbeerpi:craftbeerpi ${VIRTUAL_ENV}
USER craftbeerpi
RUN cbpi setup
# create virtual environment
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel
# Install craftbeerpi from source
COPY --chown=craftbeerpi . /cbpi-src
RUN pip3 install --no-cache-dir /cbpi-src
# Install craftbeerpi-ui
COPY --from=download --chown=craftbeerpi /downloads /downloads
RUN pip3 install --no-cache-dir /downloads/cbpi-ui.zip
# Clean up installation files
USER root
RUN rm -rf /downloads /cbpi-src
USER craftbeerpi
WORKDIR /cbpi
RUN ["cbpi", "setup"]
EXPOSE 8000