Skip to content

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