docker自动续签SSL证书
方案一
先进入docker
容器,然后运行自动续签命令即可。
bash
docker exec -it <container_id> bash
如果缺少相关命令,先通过sh
进入容器,再安装相关命令。
bash
apk update && apk upgrade && apk add --no-cache bash && apk cache clean
推荐使用nginx:alpine
镜像版本。
方案二
感谢(binge8
)提供支持
https://github.com/binge8/nginx
1、使用网友分享的镜像
bash
docker run -d -v ./nginx/conf.d:/etc/nginx/conf.d \
-e HTTPSOK=HTTPOK_TOKEN \
bin20088/nginx:latest
2、自己构建镜像
bash
# 构建镜像
docker build -t mynginx:latest .
# 运行容器
docker run -d -v ./nginx/conf.d:/etc/nginx/conf.d \
-e HTTPSOK=HTTPOK_TOKEN \
mynginx:latest
dockerfile
FROM nginx:alpine
LABEL maintainer="binge8 <cxwa28@163.com>"
#加入httpsok
COPY docker-entrypoint.sh docker-entrypoint.d
# 更新包,安装bash,定时任务开机运行
RUN apk update && apk upgrade \
&& apk add --no-cache bash shadow \
&& usermod -s /bin/bash root \
&& apk del shadow && apk cache clean
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
bash
#!/bin/bash
# 注意:此文件需要添加可执行权限 chmod +x docker-entrypoint.sh
#启动后等待10秒执行
sleep 10
#配置httpsok
if [ -n "$HTTPSOK" ]; then
curl -s https://get.httpsok.com/ | bash -s $HTTPSOK
fi
#运行定时服务
crond