Docker compose 如何保持certbot容器运行?
我正在使用Docker compose 如何保持certbot容器运行?,docker-compose,certbot,Docker Compose,Certbot,我正在使用certbot/certbot容器,如下所示: docker-compose run -d --rm --entrypoint 'certbot certonly --webroot -w /var/www/certbot --staging --email example@domain.se -d example.com --rsa-key-size 4096 --agree-tos --force-renewal ; sleep 3600' certbot 在以下文件中: ver
certbot/certbot
容器,如下所示:
docker-compose run -d --rm --entrypoint 'certbot certonly --webroot -w /var/www/certbot --staging --email example@domain.se -d example.com --rsa-key-size 4096 --agree-tos --force-renewal ; sleep 3600' certbot
在以下文件中:
version: '3.5'
services:
nginx:
image: nginx:1.15-alpine
restart: unless-stopped
volumes:
- "~/dev/docker/projects/common/volumes/letsencrypt/nginx:/etc/nginx/conf.d"
- "~/dev/docker/projects/common/volumes/letsencrypt/certbot/conf:/etc/letsencrypt"
- "~/dev/docker/projects/common/volumes/letsencrypt/certbot/www:/var/www/certbot"
- "~/dev/docker/projects/common/volumes/letsencrypt/nginx:/var/www/nginx"
- "~/dev/docker/projects/common/volumes/logs:/var/log/nginx"
ports:
- "80:80"
- "443:443"
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
certbot:
image: certbot/certbot
restart: unless-stopped
volumes:
- "~/dev/docker/projects/common/volumes/letsencrypt/certbot/conf:/etc/letsencrypt"
- "~/dev/docker/projects/common/volumes/letsencrypt/certbot/www:/var/www/certbot"
- "~/dev/docker/projects/common/volumes/logs:/var/log/letsencrypt"
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
但是它忽略了sleep命令,容器就消失了
鉴于运行以下程序:
docker-compose run -d --rm --entrypoint 'sleep 3600' certbot
保持容器正常运行
我希望在certbot
失败后保持容器正常运行。您可以将“/bin/sh-c”陷阱退出条件;同时:;do certbot renew;sleep 12h&wait$${!};done;”
移动到专用脚本中,例如start.sh
使用docker compose卷装载它
volumes:
- "./start.sh:/start.sh
entrypoint: /start.sh
您可以将“/bin/sh-c”陷阱退出条件;while:;do certbot renew;sleep 12h&wait$${!};done;”
移动到专用脚本中,例如start.sh
使用docker compose卷装载它
volumes:
- "./start.sh:/start.sh
entrypoint: /start.sh
当然可以,但我没有在这里建立任何形象。对不起,是我的错。您可以使用卷装载它。我刚刚修正了答案。当然,但我没有在这里建立任何形象。对不起,是我的错。您可以使用卷装载它。我刚刚确定了答案。