acme.sh docker
As one of the big docker fans, I understand that we hate to install anything on a docker host, even if it’s just copying a shell script.
So, Here “acme.sh in docker” comes.
- Based on alpine, only 5MB size.
- Either run as executable or run as daemon
- Support all the command line parameters.
1. Say “Hello World”
docker run --rm neilpang/acme.sh
2. Use as an executable:
docker run --rm -it \
-v "$(pwd)/out":/acme.sh \
--net=host \
neilpang/acme.sh --issue -d example.com --standalone
You can use any commands that acme.sh supports here, other examples:
#revoke a cert
docker run --rm -it \
-v "$(pwd)/out":/acme.sh \
--net=host \
neilpang/acme.sh --revoke -d example.com
#use dns mode
docker run --rm -it \
-v "$(pwd)/out":/acme.sh \
neilpang/acme.sh --issue -d example.com --dns
#run cron job
docker run --rm -it \
-v "$(pwd)/out":/acme.sh \
--net=host \
neilpang/acme.sh --cron
Anyway, you can just invoke neilpang/acme.sh image as if it were a real shell script.
3. Run acme.sh as a docker daemon.
1. Starting acme.sh as a docker daemon, so that it can handle the renewal cronjob automatically.
docker run --rm -itd \
-v "$(pwd)/out":/acme.sh \
--net=host \
--entrypoint /bin/sh \
--name=acme.sh \
neilpang/acme.sh
2. Then you can just use docker exec
to execute any acme.sh commands.
docker exec acme.sh --help
docker exec acme.sh --issue -d example.com --standalone
Yes, again, You can use any commands that acme.sh supports here.
See: https://github.com/Neilpang/acme.sh/wiki/Run-acme.sh-in-docker