如何在Docker中正确配置certbot?

如何解决如何在Docker中正确配置certbot?

请帮助我解决这个问题,我已经尝试解决2天了! 请告诉我我在做什么错。而我应该改变使其工作!而我应该做些什么才能使其正常工作。

错误:对于certbot无法启动服务certbot:网络4d3b22b1f02355c68a900a7dfd80b8c5bb64508e7e12d11dadae11be11ed83dd未找到

我的docker-compose文件

version: '3'
services:
    nginx:
        restart: always
        build:
            context: ./
            dockerfile: ./nginx/Dockerfile
        depends_on:
            - server
        ports:
            - 80:80
        volumes:
            - ./server/media:/nginx/media
            - ./conf.d:/nginx/conf.d
            - ./dhparam:/nginx/dhparam
            - ./certbot/conf:/nginx/ssl
            - ./certbot/data:/usr/share/nginx/html/letsencrypt

    server:
        build:
            context: ./
            dockerfile: ./server/Dockerfile
        command: gunicorn config.wsgi -c ./config/gunicorn.py
        volumes:
            - ./server/media:/server/media
        ports:
            - "8000:8000"
        depends_on:
            - db
        environment:
            DEBUG: 'False'
            DATABASE_URL: 'postgres://postgres:@db:5432/postgres'
            BROKER_URL: 'amqp://user:password@rabbitmq:5672/my_vhost'

    db:
        image: postgres:11.2
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: postgres
    certbot:
        image: certbot/certbot:latest
        command: certonly --webroot --webroot-path=/usr/share/nginx/html/letsencrypt --email artasdeco.ru@gmail.com --agree-tos --no-eff-email -d englishgame.ru
        volumes:
        - ./certbot/conf:/etc/letsencrypt
        - ./certbot/logs:/var/log/letsencrypt
        - ./certbot/data:/usr/share/nginx/html/letsencrypt

我的Dockerfile

FROM python:3.7-slim AS server

RUN mkdir /server
WORKDIR /server

COPY ./server/requirements.txt /server/
RUN pip install -r requirements.txt

COPY ./server /server

RUN python ./manage.py collectstatic --noinput

#########################################

FROM nginx:1.13

RUN rm -v /etc/nginx/nginx.conf
COPY ./nginx/nginx.conf /etc/nginx/

RUN mkdir /nginx
COPY --from=server /server/staticfiles /nginx/static

nginx.conf文件

user nginx;
worker_processes auto;

error_log  /var/log/nginx/error.log warn;

events {
    worker_connections  1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;


    server {
        listen 443 ssl http2;
        server_name englishgame.ru;
        
        ssl on;
        server_tokens off;
        ssl_certificate /etc/nginx/ssl/live/englishgame.ru/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/live/englishgame.ru/fullchain.pem;
        ssl_dhparam /etc/nginx/dhparam/dhparam-2048.pem;
        
        ssl_buffer_size 8k;
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
        
        location / {
            return 301 https://englishgame.ru$request_uri; 
        }
        
    }

    server {
        listen 80;

        server_name englishgame.ru;

        location ~ /.well-known/acme-challenge {
                allow all;
                root /usr/share/nginx/html/letsencrypt;
        }

        location /static {
            alias /nginx/static/;
            expires max;
        }

        location /media {
            alias /nginx/media/;
            expires 10d;
        }

        location /robots.txt {
            alias /nginx/static/robots.txt;
        }

        location /sitemap.xml {
            alias /nginx/static/sitemap.xml;
        }

        location / {
            proxy_pass        http://server:8000;
            proxy_redirect    off;

            proxy_read_timeout  60;

            proxy_set_header  Host             $host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    }
}

谢谢您的帮助!

解决方法

好的,因此基于错误ERROR: for certbot Cannot start service certbot: network 4d3b22b1f02355c68a900a7dfd80b8c5bb64508e7e12d11dadae11be11ed83dd not found,此问题与撰写文件中定义的任何其他服务都不相关,因此这些问题以及您的Dockerfile和nginx配置应该与该问题无关。

然后解决“为什么无法创建certbot服务”的问题。通常,当手动删除为服务配置的网络时,会发生这种错误。但是,在这种情况下,甚至没有服务指向网络。因此,仅打印哈希值,而不打印任何网络名称。

Google搜索该错误会带来一个类似的问题,让我们进行加密:https://github.com/BirgerK/docker-apache-letsencrypt/issues/8,它指向 实际的docker compose问题https://github.com/docker/compose/issues/5745

解决方案是使用“ --force-recreate”选项运行docker compose来解决问题。

因此,应该通过运行docker compose up -d --force-recreate来解决此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-