Я пытаюсь получить Let's Encrypt внутри официальный контейнер Docker Wordpress.
$ cat docker-compose.yml
wordpress:
hostname: some.fqdn.com
image: wordpress
links:
- db:mysql
ports:
- 80:80
- 443:443
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
$ docker-compose -f docker-compose.yml up -d
$ docker exec -ti root_wordpress_1 bash
$ apt-get update && apt-get install -y git-core
[...]
$ cd /usr/local
$ git clone https://github.com/letsencrypt/letsencrypt
[...]
$ cd letsencrypt/
$ ./letsencrypt-auto --apache
Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt --apache
An unexpected error occurred:
PythonDialogBug
Please see the logfiles in /var/log/letsencrypt for more details.
$ cat /var/log/letsencrypt/letsencrypt.log
2016-03-04 15:28:41,551:DEBUG:letsencrypt.cli:Root logging level set at 30
2016-03-04 15:28:41,553:INFO:letsencrypt.cli:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2016-03-04 15:28:41,554:DEBUG:letsencrypt.cli:letsencrypt version: 0.4.2
2016-03-04 15:28:41,554:DEBUG:letsencrypt.cli:Arguments: ['--apache']
2016-03-04 15:28:41,555:DEBUG:letsencrypt.cli:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2016-03-04 15:28:41,559:DEBUG:letsencrypt.cli:Requested authenticator apache and installer apache
2016-03-04 15:28:42,166:DEBUG:letsencrypt.display.ops:Single candidate plugin: * apache
Description: Apache Web Server - Alpha
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = letsencrypt_apache.configurator:ApacheConfigurator
Initialized: <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310>
Prep: True
2016-03-04 15:28:42,168:DEBUG:letsencrypt.cli:Selected authenticator <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310> and installer <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fd05eb85310>
2016-03-04 15:28:42,178:DEBUG:letsencrypt.cli:Exiting abnormally:
Traceback (most recent call last):
File "/root/.local/share/letsencrypt/bin/letsencrypt", line 11, in <module>
sys.exit(main())
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 1993, in main
return config.func(config, plugins)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 658, in run
domains = _find_domains(config, installer)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/cli.py", line 133, in _find_domains
domains = display_ops.choose_names(installer)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/display/ops.py", line 217, in choose_names
default=True)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/display/util.py", line 156, in yesno
yes_label=yes_label, no_label=no_label)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 3749, in yesno
kwargs)
File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1765, in _widget_with_no_output
widget_name, output))
PythonDialogBug
У кого-нибудь есть какие-нибудь подсказки?
Я хочу создать образ поверх официального образа Wordpress, который автоматически добавляет Let's Encrypt.
Я считаю, что это может быть проблема TERM
, потому что клиент использует некоторый пользовательский интерфейс терминала,
но даже после исправления этого с помощью export TERM=xterm
, вы столкнетесь с проблемой перезапуска apache, когда клиент letsencrypt перезапускает apache, и контейнер wordpress сразу же уничтожается. Благодаря ответу Как автоматически запускать службу при запуске контейнера докеров? Я преодолел это в своем пользовательское изображение WordPress с хвостовым подходом там можно поискать больше идей, как видно на скриншоте, работает))
Обновить
следующие шаги помогут решить проблему со строками в диалоговом окне (в дополнение к ранее примененным export TERM=xterm
)
apt-get install locales
locale-gen "en_US.UTF-8"
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
export LC_ALL="en_US.UTF-8"
export NCURSES_NO_UTF8_ACS=1
Вы также можете запустить клиент в 2 других режимах
-t
текстовый режим пользовательского интерфейса-n
, --non-interactive
, --noninteractive
Запускать, даже не запрашивая пользовательского ввода. Для этого могут потребоваться дополнительные флаги командной строки; клиент попытается объяснить, какие из них требуются, если обнаружит, что один отсутствуетЭто может быть проблема с TERM или с диалоговым программным обеспечением. Попробуйте найти его (какой диалог) и обновить. Я установил новую версию диалога и заменил / usr / bin / dialog на / usr / local / bin / dialog (ln -s ...)