Dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829
  1. FROM python:3.11-alpine AS build
  2. ARG S3QL_VERSION=4.0.0
  3. COPY requirements.txt /
  4. RUN apk --no-cache add curl gnupg jq bzip2 g++ make pkgconfig fuse3-dev sqlite-dev libffi-dev openssl-dev cargo
  5. RUN pip install --user --ignore-installed -r requirements.txt
  6. RUN gpg2 --batch --keyserver keyserver.ubuntu.com --recv-key 0xD113FCAC3C4E599F
  7. ARG FILE="s3ql-$S3QL_VERSION"
  8. ARG URL="https://github.com/s3ql/s3ql/releases/download/release-$S3QL_VERSION/$FILE.tar.gz"
  9. RUN set -x; \
  10. curl -sfL "$URL" -o "/tmp/$FILE.tar.gz" \
  11. && curl -sfL "$URL.asc" | gpg2 --batch --verify - "/tmp/$FILE.tar.gz" \
  12. && tar -xmf "/tmp/$FILE.tar.gz"
  13. WORKDIR $FILE
  14. RUN python3 setup.py build_ext --inplace \
  15. && python3 setup.py install --user
  16. FROM python:3.11-alpine
  17. RUN apk --no-cache add fuse3 psmisc
  18. COPY --from=build /root/.local/bin/ /usr/local/bin/
  19. COPY --from=build /root/.local/lib/ /usr/local/lib/
  20. COPY ./authfile.sh ./entrypoint.sh ./mount.sh /usr/local/bin/
  21. RUN chmod 755 /usr/local/bin/*.sh
  22. ENV MOUNTPOINT=/s3ql
  23. VOLUME /root/.s3ql
  24. HEALTHCHECK --interval=300s CMD ["/bin/sh","-c","s3qlstat --quiet $MOUNTPOINT"]
  25. ENTRYPOINT ["/bin/sh","/usr/local/bin/entrypoint.sh"]
  26. CMD ["/bin/sh","/usr/local/bin/mount.sh"]