Skip to content

Run acme.sh in docker

neil edited this page Apr 3, 2017 · 16 revisions

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.

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 \
  --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.