Dockerfile 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. FROM alpine:3.21
  2. RUN apk --no-cache add -f \
  3. openssl \
  4. openssh-client \
  5. coreutils \
  6. bind-tools \
  7. curl \
  8. sed \
  9. socat \
  10. tzdata \
  11. oath-toolkit-oathtool \
  12. tar \
  13. libidn \
  14. jq \
  15. cronie
  16. ENV LE_CONFIG_HOME=/acme.sh
  17. ARG AUTO_UPGRADE=1
  18. ENV AUTO_UPGRADE=$AUTO_UPGRADE
  19. #Install
  20. COPY ./acme.sh /install_acme.sh/acme.sh
  21. COPY ./deploy /install_acme.sh/deploy
  22. COPY ./dnsapi /install_acme.sh/dnsapi
  23. COPY ./notify /install_acme.sh/notify
  24. RUN cd /install_acme.sh && ([ -f /install_acme.sh/acme.sh ] && /install_acme.sh/acme.sh --install || curl https://get.acme.sh | sh) && rm -rf /install_acme.sh/
  25. RUN ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh && crontab -l | grep acme.sh | sed 's#> /dev/null#> /proc/1/fd/1 2>/proc/1/fd/2#' | crontab -
  26. RUN for verb in help \
  27. version \
  28. install \
  29. uninstall \
  30. upgrade \
  31. issue \
  32. signcsr \
  33. deploy \
  34. install-cert \
  35. renew \
  36. renew-all \
  37. revoke \
  38. remove \
  39. list \
  40. info \
  41. showcsr \
  42. install-cronjob \
  43. uninstall-cronjob \
  44. cron \
  45. toPkcs \
  46. toPkcs8 \
  47. update-account \
  48. register-account \
  49. create-account-key \
  50. create-domain-key \
  51. createCSR \
  52. deactivate \
  53. deactivate-account \
  54. set-notify \
  55. set-default-ca \
  56. set-default-chain \
  57. ; do \
  58. printf -- "%b" "#!/usr/bin/env sh\n/root/.acme.sh/acme.sh --${verb} --config-home /acme.sh \"\$@\"" >/usr/local/bin/--${verb} && chmod +x /usr/local/bin/--${verb} \
  59. ; done
  60. RUN printf "%b" '#!'"/usr/bin/env sh\n \
  61. if [ \"\$1\" = \"daemon\" ]; then \n \
  62. exec crond -n -s -m off \n \
  63. else \n \
  64. exec -- \"\$@\"\n \
  65. fi\n" >/entry.sh && chmod +x /entry.sh
  66. VOLUME /acme.sh
  67. ENTRYPOINT ["/entry.sh"]
  68. CMD ["--help"]