| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | # sync with https://github.com/fphammerle/systemctl-mqtt/blob/master/Dockerfile# not using python:3.*-alpine cause glib-dev package depends on python3# https://pkgs.alpinelinux.org/package/v3.11/main/aarch64/glib-devARG BASE_IMAGE=docker.io/alpine:3.13.1ARG SOURCE_DIR_PATH=/switchbot-mqtt# hadolint ignore=DL3006FROM $BASE_IMAGE as buildRUN apk add --no-cache \        gcc \        git `# setuptools_scm` \        glib-dev \        jq `# edit Pipfile.lock` \        make \        musl-dev \        py3-certifi `# pipenv` \        py3-pip `# pipenv install` \        py3-virtualenv `# pipenv` \    && adduser -S buildUSER buildRUN pip3 install --user --no-cache-dir pipenv==2021.5.29ARG SOURCE_DIR_PATHCOPY --chown=build:nobody Pipfile Pipfile.lock $SOURCE_DIR_PATH/WORKDIR $SOURCE_DIR_PATHENV PIPENV_CACHE_DIR=/tmp/pipenv-cache \    PIPENV_VENV_IN_PROJECT=yes-please \    PATH=/home/build/.local/bin:$PATH# `sponge` is not pre-installedRUN jq 'del(.default."switchbot-mqtt", .default."sanitized-package")' Pipfile.lock > Pipfile.lock~ \    && mv Pipfile.lock~ Pipfile.lock \    && pipenv install --deploy --verboseCOPY --chown=build:nobody . $SOURCE_DIR_PATHRUN pipenv install --deploy --verbose \    && pipenv graph \    && pipenv run pip freeze \    && rm -rf .git/ $PIPENV_CACHE_DIR \    && chmod -cR a+rX .# workaround for broken multi-stage copy# > failed to copy files: failed to copy directory: Error processing tar file(exit status 1): Container ID ... cannot be mapped to a host IDUSER 0RUN chown -R 0:0 $SOURCE_DIR_PATHUSER build# hadolint ignore=DL3006FROM $BASE_IMAGERUN apk add --no-cache \        glib \        python3 \        tini \    && find / -xdev -type f -perm /u+s -exec chmod -c u-s {} \; \    && find / -xdev -type f -perm /g+s -exec chmod -c g-s {} \;#RUN apk add bluez-deprecated `# hcitool`USER nobodyARG SOURCE_DIR_PATHCOPY --from=build $SOURCE_DIR_PATH $SOURCE_DIR_PATHARG VIRTUALENV_PATH=$SOURCE_DIR_PATH/.venvENV PATH=$VIRTUALENV_PATH/bin:$PATHENV MQTT_HOST ""ENV MQTT_PORT "1883"ENV MQTT_USERNAME ""ENV MQTT_PASSWORD ""ENTRYPOINT ["tini", "--"]CMD ["sh", "-c", "switchbot-mqtt --mqtt-host \"$MQTT_HOST\" --mqtt-port \"$MQTT_PORT\" --mqtt-username \"$MQTT_USERNAME\" --mqtt-password \"$MQTT_PASSWORD\""]
 |