Browse Source

docker: remove pipenv from runtime image

Fabian Peter Hammerle 3 years ago
parent
commit
92230331f6
1 changed files with 20 additions and 20 deletions
  1. 20 20
      Dockerfile

+ 20 - 20
Dockerfile

@@ -2,34 +2,34 @@
 # https://pkgs.alpinelinux.org/package/v3.11/main/aarch64/glib-dev
 ARG BASE_IMAGE=alpine:3.11
 ARG SOURCE_DIR_PATH=/systemctl-mqtt
-ARG VIRTUALENV_PATH=$SOURCE_DIR_PATH/.venv
 
 
 FROM $BASE_IMAGE as build
 
 RUN apk add --no-cache \
-    dbus-dev \
-    gcc \
-    git `# setuptools_scm` \
-    glib-dev `# dbus-python` \
-    make `# dbus-python` \
-    musl-dev `# dbus-python` \
-    py3-virtualenv \
-    python3-dev `# dbus-python`
+        dbus-dev \
+        gcc \
+        git `# setuptools_scm` \
+        glib-dev `# dbus-python` \
+        make `# dbus-python` \
+        musl-dev `# dbus-python` \
+        py3-certifi `# pipenv` \
+        py3-virtualenv `# pipenv` \
+        python3-dev `# dbus-python` \
+    && adduser -S build
+
+USER build
+RUN pip3 install --user --no-cache-dir pipenv==2020.6.2
 
 ARG SOURCE_DIR_PATH
-RUN mkdir $SOURCE_DIR_PATH \
-    && chown nobody $SOURCE_DIR_PATH
-USER nobody
-
-ARG VIRTUALENV_PATH
-RUN virtualenv --no-site-packages $VIRTUALENV_PATH
-ENV PATH=$VIRTUALENV_PATH/bin:$PATH
+COPY --chown=build:1234 . $SOURCE_DIR_PATH
 WORKDIR $SOURCE_DIR_PATH
-RUN pip install --no-cache-dir pipenv==2020.6.2
-COPY --chown=nobody . $SOURCE_DIR_PATH
-ENV PIPENV_CACHE_DIR=/tmp/pipenv-cache
+ENV PIPENV_CACHE_DIR=/tmp/pipenv-cache \
+    PIPENV_VENV_IN_PROJECT=yes-please \
+    PATH=/home/build/.local/bin:$PATH
 RUN pipenv install --deploy --verbose \
+    && pipenv graph \
+    && pipenv run pip freeze \
     && rm -r .git/ $PIPENV_CACHE_DIR
 
 # workaround for broken multi-stage copy
@@ -52,7 +52,7 @@ USER nobody
 
 ARG SOURCE_DIR_PATH
 COPY --from=build $SOURCE_DIR_PATH $SOURCE_DIR_PATH
-ARG VIRTUALENV_PATH
+ARG VIRTUALENV_PATH=$SOURCE_DIR_PATH/.venv
 ENV PATH=$VIRTUALENV_PATH/bin:$PATH
 ENTRYPOINT ["tini", "--"]
 CMD ["systemctl-mqtt", "--help"]