diff --git a/Dockerfile b/Dockerfile index 2e747ba..40a61ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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