diff --git a/vwsfriend/Dockerfile b/vwsfriend/Dockerfile index b719ab96..0686899d 100644 --- a/vwsfriend/Dockerfile +++ b/vwsfriend/Dockerfile @@ -1,11 +1,12 @@ # Here is the build image FROM python:3.8.0-slim as builder RUN apt-get update \ -&& apt-get install gcc -y \ +&& apt-get install gcc libpq-dev python-dev -y \ && apt-get clean -COPY . vwsfriend -RUN pip install --upgrade pip -RUN pip install --user vwsfriend +RUN python -m venv /opt/venv +# Make sure we use the virtualenv: +ENV PATH="/opt/venv/bin:$PATH" +RUN pip install vwsfriend FROM python:3.9.6-slim-buster @@ -15,8 +16,8 @@ ENV WECONNECT_INTERVAL= ENV ADDITIONAL_PARAMETERS= ENV DATABASE_URL= -COPY --from=builder /root/.local /root/.local -ENV PATH=/root/.local/bin:$PATH +COPY --from=builder /opt/venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" RUN mkdir -p /config CMD vwsfriend --username ${WECONNECT_USER} --password ${WECONNECT_PASSWORD} --interval ${WECONNECT_INTERVAL} --database-url ${DATABASE_URL} --config-dir /config ${ADDITIONAL_PARAMETERS} diff --git a/vwsfriend/Dockerfile-edge b/vwsfriend/Dockerfile-edge index 42d3182b..63359548 100644 --- a/vwsfriend/Dockerfile-edge +++ b/vwsfriend/Dockerfile-edge @@ -1,4 +1,24 @@ -FROM python:3.9.5-alpine +# Here is the build image +FROM ubuntu:20.04 as builder + +ENV DEBIAN_FRONTEND="noninteractive" +ENV TZ="Etc/UTC" + +RUN apt-get update && apt-get install --no-install-recommends -y python3.9 python3.9-dev python3.9-venv python3-pip python3-wheel build-essential && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +COPY . vwsfriend +RUN python3.9 -m venv /opt/venv +# Make sure we use the virtualenv: +ENV PATH="/opt/venv/bin:$PATH" +WORKDIR ./vwsfriend/ +RUN pip3 install --no-cache-dir wheel +RUN pip3 install --no-cache-dir -r requirements.txt +RUN pip3 install --no-cache-dir . + +#RUN python setup.py install + +FROM ubuntu:20.04 AS runner-image ENV WECONNECT_USER= ENV WECONNECT_PASSWORD= @@ -6,23 +26,15 @@ ENV WECONNECT_INTERVAL= ENV ADDITIONAL_PARAMETERS= ENV DATABASE_URL= -COPY . vwsfriend -RUN apk add --no-cache --virtual .build-deps rust build-base gcc libc-dev libffi-dev musl-dev python3-dev libffi-dev openssl-dev cargo postgresql-dev && \ - apk --no-cache add libpq && \ - apk --no-cache add jpeg-dev \ - zlib-dev \ - freetype-dev \ - lcms2-dev \ - openjpeg-dev \ - tiff-dev \ - tk-dev \ - tcl-dev -RUN --mount=type=cache,target=/root/.cache \ - pip install -r ./vwsfriend/requirements.txt && \ - pip install -r ./vwsfriend/setup_requirements.txt && \ - pip install -r ./vwsfriend/test_requirements.txt && \ - pip install ./vwsfriend/ -RUN apk del .build-deps +RUN apt-get update && apt-get install --no-install-recommends -y python3.9 python3-venv && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +COPY --from=builder /opt/venv /opt/venv +ENV VIRTUAL_ENV=/opt/venv +ENV PATH="/opt/venv/bin:$PATH" RUN mkdir -p /config +# make sure all messages always reach console +ENV PYTHONUNBUFFERED=1 + CMD vwsfriend --username ${WECONNECT_USER} --password ${WECONNECT_PASSWORD} --interval ${WECONNECT_INTERVAL} --database-url ${DATABASE_URL} --config-dir /config ${ADDITIONAL_PARAMETERS}