2026-04-28 03:09:40 -04:00
|
|
|
FROM alpine:3.23
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2019-10-05 08:49:51 -04:00
|
|
|
RUN apk --no-cache add -f \
|
2017-04-03 00:08:38 -04:00
|
|
|
openssl \
|
2019-11-02 02:10:50 -04:00
|
|
|
openssh-client \
|
2018-04-23 11:34:15 -04:00
|
|
|
coreutils \
|
2018-11-13 04:15:38 -05:00
|
|
|
bind-tools \
|
2017-04-03 00:08:38 -04:00
|
|
|
curl \
|
2020-08-18 06:14:00 -04:00
|
|
|
sed \
|
2017-09-09 02:15:11 -04:00
|
|
|
socat \
|
2019-02-09 13:38:32 -05:00
|
|
|
tzdata \
|
2019-06-21 17:43:32 -04:00
|
|
|
oath-toolkit-oathtool \
|
2019-06-01 10:30:25 -04:00
|
|
|
tar \
|
2022-01-18 23:36:54 -05:00
|
|
|
libidn \
|
2023-01-26 22:44:06 -05:00
|
|
|
jq \
|
2025-08-31 14:22:21 -04:00
|
|
|
yq-go \
|
2025-12-22 20:25:28 -05:00
|
|
|
supercronic
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2025-11-27 16:13:18 -05:00
|
|
|
ENV LE_WORKING_DIR=/acmebin
|
|
|
|
|
|
2025-01-25 15:00:25 -05:00
|
|
|
ENV LE_CONFIG_HOME=/acme.sh
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2025-12-30 12:44:46 -05:00
|
|
|
ENV HOME=/acme.sh
|
|
|
|
|
|
2020-08-21 05:55:07 -04:00
|
|
|
ARG AUTO_UPGRADE=1
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2025-01-25 15:00:25 -05:00
|
|
|
ENV AUTO_UPGRADE=$AUTO_UPGRADE
|
2020-08-21 06:03:53 -04:00
|
|
|
|
2017-04-03 00:08:38 -04:00
|
|
|
#Install
|
2025-03-28 15:50:08 -04:00
|
|
|
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
|
|
|
|
|
|
2025-12-22 20:25:28 -05:00
|
|
|
RUN addgroup -g 1000 acme && adduser -h $LE_CONFIG_HOME -s /bin/sh -G acme -D -H -u 1000 acme
|
2017-05-13 22:15:40 -04:00
|
|
|
|
2025-12-22 20:25:28 -05:00
|
|
|
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/
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2025-12-23 21:45:41 -05:00
|
|
|
RUN ln -s $LE_WORKING_DIR/acme.sh /usr/local/bin/acme.sh
|
2017-04-03 00:08:38 -04:00
|
|
|
|
2025-12-30 12:44:46 -05:00
|
|
|
RUN chown -R acme:acme $LE_CONFIG_HOME
|
|
|
|
|
|
2019-05-21 12:50:12 -04:00
|
|
|
RUN for verb in help \
|
2017-04-03 00:08:38 -04:00
|
|
|
version \
|
|
|
|
|
install \
|
|
|
|
|
uninstall \
|
|
|
|
|
upgrade \
|
|
|
|
|
issue \
|
|
|
|
|
signcsr \
|
|
|
|
|
deploy \
|
|
|
|
|
install-cert \
|
|
|
|
|
renew \
|
|
|
|
|
renew-all \
|
|
|
|
|
revoke \
|
|
|
|
|
remove \
|
|
|
|
|
list \
|
2022-01-02 23:38:59 -05:00
|
|
|
info \
|
2017-04-03 00:08:38 -04:00
|
|
|
showcsr \
|
|
|
|
|
install-cronjob \
|
|
|
|
|
uninstall-cronjob \
|
|
|
|
|
cron \
|
|
|
|
|
toPkcs \
|
|
|
|
|
toPkcs8 \
|
|
|
|
|
update-account \
|
|
|
|
|
register-account \
|
|
|
|
|
create-account-key \
|
|
|
|
|
create-domain-key \
|
|
|
|
|
createCSR \
|
|
|
|
|
deactivate \
|
2017-07-08 05:25:01 -04:00
|
|
|
deactivate-account \
|
2019-05-03 23:54:59 -04:00
|
|
|
set-notify \
|
2020-08-27 06:07:26 -04:00
|
|
|
set-default-ca \
|
2021-11-02 08:37:14 -04:00
|
|
|
set-default-chain \
|
2017-04-03 00:08:38 -04:00
|
|
|
; do \
|
2025-11-27 16:13:18 -05:00
|
|
|
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} \
|
2017-04-03 00:08:38 -04:00
|
|
|
; done
|
|
|
|
|
|
2017-04-15 23:16:48 -04:00
|
|
|
RUN printf "%b" '#!'"/usr/bin/env sh\n \
|
|
|
|
|
if [ \"\$1\" = \"daemon\" ]; then \n \
|
2025-12-23 21:45:41 -05:00
|
|
|
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 \
|
2025-12-22 20:25:28 -05:00
|
|
|
echo \"Running Supercronic using crontab at \$LE_CONFIG_HOME/crontab\" \n \
|
|
|
|
|
exec -- /usr/bin/supercronic \"\$LE_CONFIG_HOME/crontab\" \n \
|
2017-04-15 23:16:48 -04:00
|
|
|
else \n \
|
2017-06-28 07:21:03 -04:00
|
|
|
exec -- \"\$@\"\n \
|
2025-11-27 16:13:18 -05:00
|
|
|
fi\n" >/entry.sh && chmod +x /entry.sh && chmod -R o+rwx $LE_WORKING_DIR && chmod -R o+rwx $LE_CONFIG_HOME
|
2017-04-15 23:16:48 -04:00
|
|
|
|
2017-05-11 08:51:16 -04:00
|
|
|
VOLUME /acme.sh
|
|
|
|
|
|
2017-04-15 23:16:48 -04:00
|
|
|
ENTRYPOINT ["/entry.sh"]
|
2017-04-03 00:08:38 -04:00
|
|
|
CMD ["--help"]
|