Browse Source

docker: run as unprivileged user; uninstall pipenv + dependencies

Fabian Peter Hammerle 4 years ago
parent
commit
9417ee6df4
1 changed files with 12 additions and 7 deletions
  1. 12 7
      Dockerfile

+ 12 - 7
Dockerfile

@@ -1,4 +1,4 @@
-# not using python:3.*-alpine cause glib-dev package depends python3
+# not using python:3.*-alpine cause glib-dev package depends on python3
 # https://pkgs.alpinelinux.org/package/v3.11/main/aarch64/glib-dev
 FROM alpine:3.11
 
@@ -8,18 +8,23 @@ RUN apk add --no-cache \
     make \
     musl-dev \
     tini
+# TODO merge
+RUN apk add --no-cache py3-virtualenv
 
-RUN pip3 install pipenv
+#RUN apk add bluez-deprecated `# hcitool`
+
+USER nobody
 
 ARG SOURCE_DIR_PATH=/switchbot-mqtt
 ARG SWITCHBOT_MQTT_VERSION=
-COPY . $SOURCE_DIR_PATH
+COPY --chown=nobody . $SOURCE_DIR_PATH
 WORKDIR $SOURCE_DIR_PATH
-ENV PIPENV_VENV_IN_PROJECT=yeah
-RUN SETUPTOOLS_SCM_PRETEND_VERSION=$SWITCHBOT_MQTT_VERSION pipenv install --deploy --verbose
+RUN virtualenv --no-site-packages .venv \
+    && source .venv/bin/activate \
+    && pip install --no-cache-dir pipenv \
+    && SETUPTOOLS_SCM_PRETEND_VERSION=$SWITCHBOT_MQTT_VERSION pipenv install --deploy --verbose \
+    && pipenv clean --verbose
 
 ENV PATH=$SOURCE_DIR_PATH/.venv/bin:$PATH
 ENTRYPOINT ["tini", "--"]
 CMD ["switchbot-mqtt"]
-
-#RUN apk add bluez-deprecated `# hcitool`