-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Run acme.sh in docker
GC Chen edited this page Jul 11, 2024
·
20 revisions
As one of the big docker fans, I understand that we hate installing anything on a docker host, even if it's just copying a shell script.
Automated nginx reverse proxy docker image with acme.sh for letsencrypt ssl cert: https://github.com/Neilpang/letsproxy
Deploy to a docker container and reload it: https://github.com/Neilpang/acme.sh/wiki/deploy-to-docker-containers
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.
docker run --rm neilpang/acme.sh
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 --dns -d example.com
#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.
docker run --rm -itd \
-v "$(pwd)/out":/acme.sh \
--net=host \
--name=acme.sh \
neilpang/acme.sh daemon
Or run acme.sh by using Docker Compose
.
Edit docker-compose.yml
:
services:
acme-sh:
image: neilpang/acme.sh
container_name: acme.sh
volumes:
- ./out:/acme.sh
network_mode: host
command: daemon
stdin_open: true
tty: true
restart: no
Then run acme.sh:
docker compose up -d
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.