| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- FROM alpine:3.22
- RUN apk --no-cache add -f \
- openssl \
- openssh-client \
- coreutils \
- bind-tools \
- curl \
- sed \
- socat \
- tzdata \
- oath-toolkit-oathtool \
- tar \
- libidn \
- jq \
- yq-go \
- supercronic
- ENV LE_WORKING_DIR=/acmebin
- ENV LE_CONFIG_HOME=/acme.sh
- ENV HOME=/acme.sh
- ARG AUTO_UPGRADE=1
- ENV AUTO_UPGRADE=$AUTO_UPGRADE
- #Install
- COPY ./acme.sh /install_acme.sh/acme.sh
- COPY ./deploy /install_acme.sh/deploy
- COPY ./dnsapi /install_acme.sh/dnsapi
- COPY ./notify /install_acme.sh/notify
- RUN addgroup -g 1000 acme && adduser -h $LE_CONFIG_HOME -s /bin/sh -G acme -D -H -u 1000 acme
- 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/
- RUN ln -s $LE_WORKING_DIR/acme.sh /usr/local/bin/acme.sh
- RUN chown -R acme:acme $LE_CONFIG_HOME
- RUN for verb in help \
- version \
- install \
- uninstall \
- upgrade \
- issue \
- signcsr \
- deploy \
- install-cert \
- renew \
- renew-all \
- revoke \
- remove \
- list \
- info \
- showcsr \
- install-cronjob \
- uninstall-cronjob \
- cron \
- toPkcs \
- toPkcs8 \
- update-account \
- register-account \
- create-account-key \
- create-domain-key \
- createCSR \
- deactivate \
- deactivate-account \
- set-notify \
- set-default-ca \
- set-default-chain \
- ; do \
- printf -- "%b" "#!/usr/bin/env sh\n$LE_WORKING_DIR/acme.sh --${verb} --config-home $LE_CONFIG_HOME \"\$@\"" >/usr/local/bin/--${verb} && chmod +x /usr/local/bin/--${verb} \
- ; done
- RUN printf "%b" '#!'"/usr/bin/env sh\n \
- if [ \"\$1\" = \"daemon\" ]; then \n \
- if [ ! -f \"\$LE_CONFIG_HOME/crontab\" ]; then \n \
- echo \"\$LE_CONFIG_HOME/crontab not found, generating one\" \n \
- time=\$(date -u \"+%s\") \n \
- random_minute=\$((\$time % 60)) \n \
- random_hour=\$((\$time / 60 % 24)) \n \
- echo \"\$random_minute \$random_hour * * * \\\"\$LE_WORKING_DIR\\\"/acme.sh --cron --home \\\"\$LE_WORKING_DIR\\\" --config-home \\\"\$LE_CONFIG_HOME\\\"\" > \"\$LE_CONFIG_HOME\"/crontab \n \
- fi \n \
- echo \"Running Supercronic using crontab at \$LE_CONFIG_HOME/crontab\" \n \
- exec -- /usr/bin/supercronic \"\$LE_CONFIG_HOME/crontab\" \n \
- else \n \
- exec -- \"\$@\"\n \
- fi\n" >/entry.sh && chmod +x /entry.sh && chmod -R o+rwx $LE_WORKING_DIR && chmod -R o+rwx $LE_CONFIG_HOME
- VOLUME /acme.sh
- ENTRYPOINT ["/entry.sh"]
- CMD ["--help"]
|