Не удается найти `/ etc / letsencrypt / live /` в контейнере - PullRequest
0 голосов
/ 01 мая 2020

У меня хорошо работает сервер со следующим docker-compose.yml. Я могу найти в контейнере /etc/letsencrypt/live/v2.10studio.tech/fullchain.pem и /etc/letsencrypt/live/v2.10studio.tech/privkey.pem.

version: "3"
services:
  frontend:
    restart: unless-stopped
    image: staticfloat/nginx-certbot
    ports:
      - 80:8080/tcp
      - 443:443/tcp
    environment:
      CERTBOT_EMAIL: owner@company.com
    volumes:
      - ./conf.d:/etc/nginx/user.conf.d:ro
      - letsencrypt:/etc/letsencrypt
  10studio:
    image: bitnami/nginx:1.16
    restart: always
    volumes: 
      - ./build:/app
      - ./default.conf:/opt/bitnami/nginx/conf/server_blocks/default.conf:ro
      - ./configs/config.prod.js:/app/lib/config.js
    depends_on: 
    - frontend

volumes:
  letsencrypt:

networks:
  default:
    external:
      name: 10studio

Я пытался создать другой сервер с такой же настройкой, но не смог найти live в /etc/letsencrypt контейнера.

Кто-нибудь знает, что не так? откуда берутся файлы в /etc/letsencrypt/live?

Редактировать 1:

У меня есть один файл conf.d/.conf, я попытался восстановить и получил следующее сообщение:

root@iZj6cikgrkjzogdi7x6rdoZ:~/10Studio/pfw# docker-compose up --build --force-recreate --no-deps
Creating pfw_pfw_1 ... done
Creating pfw_10studio_1 ... done
Attaching to pfw_pfw_1, pfw_10studio_1
10studio_1  |  11:25:33.60 
10studio_1  |  11:25:33.60 Welcome to the Bitnami nginx container
pfw_1       | templating scripts from /etc/nginx/user.conf.d to /etc/nginx/conf.d
pfw_1       | Substituting variables 
pfw_1       |  -> /etc/nginx/user.conf.d/*.conf
pfw_1       | /scripts/util.sh: line 116: /etc/nginx/user.conf.d/*.conf: No such file or directory
pfw_1       | Done with startup
pfw_1       | Run certbot
pfw_1       | ++ parse_domains
pfw_1       | ++ for conf_file in /etc/nginx/conf.d/*.conf*
pfw_1       | ++ xargs echo
pfw_1       | ++ sed -n -r -e 's&^\s*ssl_certificate_key\s*\/etc/letsencrypt/live/(.*)/privkey.pem;\s*(#.*)?$&\1&p' /etc/nginx/conf.d/certbot.conf
pfw_1       | + auto_enable_configs
pfw_1       | + for conf_file in /etc/nginx/conf.d/*.conf*
pfw_1       | + keyfiles_exist /etc/nginx/conf.d/certbot.conf
pfw_1       | ++ parse_keyfiles /etc/nginx/conf.d/certbot.conf
pfw_1       | ++ sed -n -e 's&^\s*ssl_certificate_key\s*\(.*\);&\1&p' /etc/nginx/conf.d/certbot.conf
pfw_1       | + return 0
pfw_1       | + '[' conf = nokey ']'
pfw_1       | + set +x
10studio_1  |  11:25:33.60 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-nginx
10studio_1  |  11:25:33.61 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-nginx/issues
10studio_1  |  11:25:33.61 Send us your feedback at containers@bitnami.com
10studio_1  |  11:25:33.61 
10studio_1  |  11:25:33.62 INFO  ==> ** Starting NGINX setup **
10studio_1  |  11:25:33.64 INFO  ==> Validating settings in NGINX_* env vars...
10studio_1  |  11:25:33.64 INFO  ==> Initializing NGINX...
10studio_1  |  11:25:33.65 INFO  ==> ** NGINX setup finished! **
10studio_1  | 
10studio_1  |  11:25:33.66 INFO  ==> ** Starting NGINX **

Если я сделаю docker-compose up -d --build, я все равно не смогу найти /etc/letsencrypt/live в контейнере.

Ответы [ 3 ]

1 голос
/ 01 мая 2020

Пожалуйста, go через оригинальный сайт этого изображения staticfloat/nginx-certbot, он создаст и автоматически обновит SSL-сертификаты сайта.

С файлом конфигурации в ./conf.d

Создайте каталог конфигурации для своих пользовательских настроек:

$ mkdir conf.d
And a .conf in that directory:

server {
    listen              443 ssl;
    server_name         server.company.com;
    ssl_certificate     /etc/letsencrypt/live/server.company.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/server.company.com/privkey.pem;

    location / {
        ...
    }
}

, поскольку /etc/letsencrypt монтируется из постоянного тома letsencrypt

services:
  frontend:
    restart: unless-stopped
    image: staticfloat/nginx-certbot
    ...
    volumes:
      ...
      - letsencrypt:/etc/letsencrypt

volumes:
  letsencrypt:

Если вам нужна ссылка /etc/letsencrypt/live, вам нужно также подключить тот же том letsencrypt в ваше новое приложение

0 голосов
/ 03 мая 2020

Работает после изменения ports: - 80:8080/tcp на ports: - 80:80/tcp.

0 голосов
/ 01 мая 2020

Поскольку /etc/letsencrypt - это подключенный том, который сохраняется после перезапуска вашего контейнера, я предполагаю, что любой процесс добавил эти файлы в том. Согласно быстрому поиску с использованием моей любимой поисковой системы, /etc/letsencrypt/live заполняется файлами после создания сертификатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...