#docker-compose #web-deployment #lets-encrypt #docker-volume #certbot
#docker-compose #веб-развертывание #позволяет зашифровать #docker-volume #certbot
Вопрос:
Я пытаюсь развернуть свою службу на виртуальной машине, и у меня есть эта часть в моем docker-compose.yaml:
certbot:
container_name: certbot
image: certbot/certbot:v1.9.0
logging:
driver: "json-file"
options:
max-size: 500m
volumes:
- {vm_path}/certbot/certbot-etc:/etc/letsencrypt
- {vm_path}/certbot/certbot-var:/var/lib/letsencrypt
- {vm_path}/nginx/certbot-web-root:/var/www/certbot/html
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command:
- certonly
- --webroot
- -w /var/www/certbot/html
- --email={email}
- --agree-tos
- --no-eff-email
- --dry-run
- -d {domain}
но когда я запускаю docker-compose up
, я получаю эту ошибку от certbot:
certbot | /var/www/certbot/html does not exist or is not a directory
также каталог {vm_path}/nginx/certbot-web-root:/var/www/certbot/html
существует на моей виртуальной машине и является абсолютным.
——ОБНОВЛЕНИЕ: ОС моей виртуальной машины — Ubuntu 18.04. Я проверил docker-compose config
, и в этом нет проблем. Также результат run ls -l /var/www/certbot
:
certbot | total 4
certbot | drwxr-xr-x 2 1001 1001 4096 Nov 4 10:54 html
а также /var/www/certbot/html/
существует и пуст.
Комментарии:
1. Попробуйте запустить
docker-compose config
и убедитесь, что пути к томам соответствуют вашим ожиданиям. Если это хорошо, попробуйте запустить контейнер, заменив команду чем-то вродеls -l /var/www/certbot
. Таким образом, вы можете заглянуть внутрь контейнера и лучше увидеть, что было смонтировано2. @Mihai Спасибо, я не смог найти ничего необычного в
docker-compose config
. Как мне следует запуститьls -l /var/www/certbot
? Я не смог запустить его с помощью команды в docker-compose. Я получил этот вывод:certbot | usage: certbot | certbot [SUBCOMMAND] [options] [-d DOMAIN] [-d DOMAIN] ...
3. Вам также необходимо перезаписать точку входа. Просто добавьте
entrypoint: ls -l /var/www/certbot
и удалитеcommand
полностью4. @Mihai Спасибо. Вывод:
certbot | total 4 certbot | drwxr-xr-x 2 1001 1001 4096 Nov 4 10:54 html
5. А если заглянуть внутрь
html
папки? какова ваша операционная система хоста?
Ответ №1:
Я нашел ответ. Проблема заключается в синтаксисе командной строки, он должен быть:
command:
- certonly
- --webroot
- -w
- /var/www/certbot/html
- --email={email}
- --agree-tos
- --no-eff-email
- --dry-run
- -d
- {domain}