| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | # 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=alpine:3.11ARG SOURCE_DIR_PATH=/switchbot-mqttARG VIRTUALENV_PATH=$SOURCE_DIR_PATH/.venvFROM $BASE_IMAGE as buildRUN apk add --no-cache \    gcc \    glib-dev \    make \    musl-dev \    py3-virtualenvARG SOURCE_DIR_PATHRUN mkdir $SOURCE_DIR_PATH \    && chown nobody $SOURCE_DIR_PATHUSER nobodyARG VIRTUALENV_PATHRUN virtualenv --no-site-packages $VIRTUALENV_PATHENV PATH=$VIRTUALENV_PATH/bin:$PATHWORKDIR $SOURCE_DIR_PATHRUN pip install --no-cache-dir pipenvCOPY --chown=nobody . $SOURCE_DIR_PATHARG SWITCHBOT_MQTT_VERSION=RUN SETUPTOOLS_SCM_PRETEND_VERSION=$SWITCHBOT_MQTT_VERSION pipenv install --deploy --verbose# 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_PATHFROM $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_PATHENV PATH=$VIRTUALENV_PATH/bin:$PATHENTRYPOINT ["tini", "--"]CMD ["switchbot-mqtt"]
 |