Dockerfile 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. FROM alpine:3.11 as download
  2. RUN apk add --no-cache git
  3. # https://github.com/mikecardwell/gpgit/compare/master...EtiennePerot:master
  4. ARG GPGIT_CLONE_URL=https://github.com/EtiennePerot/gpgit.git
  5. ARG GPGIT_REVISION=e9432412f2eb6aca77fb4e7bb6fad41fcbfd8632
  6. RUN git clone "$GPGIT_CLONE_URL" /tmp/gpgit \
  7. && cd /tmp/gpgit \
  8. && git checkout "$GPGIT_REVISION" \
  9. && ls -la
  10. FROM alpine:3.11 as service
  11. ARG CPANM_PACKAGE_VERSION=1.7044-r1
  12. ARG GNUPG_PACKAGE_VERSION=2.2.19-r0
  13. # ARG PERL_MIME_VERSION=3.031-r1
  14. ARG SOCAT_PACKAGE_VERSION=1.7.3.3-r1
  15. ARG TINI_PACKAGE_VERSION=0.18.0-r0
  16. ENV GNUPGHOME=/gnupg_home
  17. RUN apk add --no-cache \
  18. gnupg=$GNUPG_PACKAGE_VERSION \
  19. perl-app-cpanminus=$CPANM_PACKAGE_VERSION \
  20. socat=$SOCAT_PACKAGE_VERSION \
  21. tini=$TINI_PACKAGE_VERSION \
  22. && adduser -S gpgit \
  23. && mkdir -p "$GNUPGHOME" \
  24. && chown gpgit "$GNUPGHOME" \
  25. && chmod 700 "$GNUPGHOME"
  26. VOLUME $GNUPGHOME
  27. ARG PERL_MAIL_GNUPG_VERSION=0.23
  28. ARG PERL_MAIL_GNUPG_BUILD_PKGS="\
  29. gcc \
  30. libc-dev \
  31. make \
  32. perl-dev \
  33. perl-module-build \
  34. perl-test-deep \
  35. perl-test-leaktrace \
  36. wget"
  37. RUN apk add --no-cache \
  38. $PERL_MAIL_GNUPG_BUILD_PKGS \
  39. perl-capture-tiny \
  40. perl-class-tiny \
  41. perl-list-moreutils \
  42. perl-mailtools \
  43. perl-mime-tools \
  44. perl-moo \
  45. perl-moox-types-mooselike \
  46. perl-role-tiny \
  47. perl-scalar-list-utils \
  48. perl-strictures \
  49. perl-sub-quote \
  50. perl-sub-uplevel \
  51. perl-test-exception \
  52. perl-test-fatal \
  53. perl-test-output \
  54. perl-test-requires \
  55. perl-try-tiny \
  56. perl-type-tiny
  57. RUN echo TODO merge \
  58. && (cpanm --notest Mail::GnuPG@$PERL_MAIL_GNUPG_VERSION \
  59. || (cat /root/.cpanm/work/*/build.log; exit 1)) \
  60. && apk del $PERL_MAIL_GNUPG_BUILD_PKGS
  61. ARG GPGIT_PATH=/usr/local/bin/gpgit
  62. COPY --from=download /tmp/gpgit/gpgit $GPGIT_PATH
  63. ENV GNUPG_IMPORT=""
  64. ENTRYPOINT ["tini", "--"]
  65. COPY serve-gpgit.sh /
  66. RUN chmod a+rx /serve-gpgit.sh
  67. USER gpgit
  68. # [string.ascii_lowercase.index(c) for c in 'gpgit']
  69. EXPOSE 6156/tcp
  70. # log level: notice
  71. ENV RECIPIENTS="gpgit@dev.null"
  72. CMD ["/serve-gpgit.sh"]