Dockerfile 818 B

123456789101112131415161718192021222324252627282930
  1. # not using python:3.*-alpine cause glib-dev package depends on python3
  2. # https://pkgs.alpinelinux.org/package/v3.11/main/aarch64/glib-dev
  3. FROM alpine:3.11
  4. RUN apk add --no-cache \
  5. gcc \
  6. glib-dev \
  7. make \
  8. musl-dev \
  9. tini
  10. # TODO merge
  11. RUN apk add --no-cache py3-virtualenv
  12. #RUN apk add bluez-deprecated `# hcitool`
  13. USER nobody
  14. ARG SOURCE_DIR_PATH=/switchbot-mqtt
  15. ARG SWITCHBOT_MQTT_VERSION=
  16. COPY --chown=nobody . $SOURCE_DIR_PATH
  17. WORKDIR $SOURCE_DIR_PATH
  18. RUN virtualenv --no-site-packages .venv \
  19. && source .venv/bin/activate \
  20. && pip install --no-cache-dir pipenv \
  21. && SETUPTOOLS_SCM_PRETEND_VERSION=$SWITCHBOT_MQTT_VERSION pipenv install --deploy --verbose \
  22. && pipenv clean --verbose
  23. ENV PATH=$SOURCE_DIR_PATH/.venv/bin:$PATH
  24. ENTRYPOINT ["tini", "--"]
  25. CMD ["switchbot-mqtt"]