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
在以下撰写文件上:
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 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
进入专用脚本,例如 start.sh。
使用 docker-compose 卷挂载它
volumes:
- "./start.sh:/start.sh
entrypoint: /start.sh
推荐阅读
- angular - 通过键盘输入文本时,IE 11(边缘)上的 Angular 6 + material 2 非常慢
- scala - Scala AST 避免遍历树的孩子
- android-layout - Android ConstraintLayout 性能改进 - 在行动中缺失
- python - Python Paramiko Ctrl Z 不适用于线程
- php - 如何使用关系软删除
- excel - 将值从单元格转换为 VBA
- ios - 通过 API 向 iOS 发送 FCM 消息时无法更改徽章编号
- python - 我正在使用 Python 3.7 和 BS4 进行网络抓取,有一个问题我无法解决,希望有人知道如何解决这个问题
- r - R:ggplot2 绘制 1 个组合箱线图,而不是 2 个类别的 2 个图
- arrays - 如何在角度 6 中将选定的(来自 homeComponent 的引导卡)传递给另一个组件(favourtiesComponent)?