Verwenden von Let's Encrypt im offiziellen Wordpress-Container von Docker

8

Ich versuche, Let's Encrypt in den offiziellen Docker Wordpress-Container zu integrieren.

Richten Sie die Umgebung ein

$ 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

Installieren Sie Let's Encrypt

$ 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.

Weitere Protokolle

$ 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

Hat hier jemand Hinweise?

Ich möchte ein Image über dem offiziellen Wordpress-Image erstellen, das automatisch Let's Encrypt hinzufügt.

vpetersson
quelle

Antworten:

4

Ich glaube, dies könnte das Problem sein TERM, da der Client eine Terminal-Benutzeroberfläche verwendet Geben Sie hier die Bildbeschreibung ein,
aber selbst nachdem Sie dies behoben haben, export TERM=xtermtreten Sie beim Apache-Neustart auf, wenn der letsencrypt-Client Apache neu startet und der WordPress-Container sofort beendet wurde. Dank der Antwort Wie starte ich automatisch einen Dienst, wenn ein Docker-Container ausgeführt wird? Ich habe dies in meinem benutzerdefinierten WordPress-Bild mit dem Tail-Ansatz überwunden. Sie können dort nach weiteren Ideen suchen, wie Sie auf dem Screenshot sehen können. Es funktioniert.

aktualisieren

Die folgenden Schritte helfen, das Problem mit den Zeilen im Dialogfeld zu beheben (zusätzlich zu den zuvor angewendeten 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

Geben Sie hier die Bildbeschreibung ein

Sie können den Client auch in zwei anderen Modi ausführen

  • -t Text-UI-Modus
  • -n, --non-interactive, --noninteractive Laufen , ohne jemals für die Benutzereingabe zu fragen. Dies kann zusätzliche Befehlszeilenflags erfordern. Der Client wird versuchen zu erklären, welche erforderlich sind, wenn er eine fehlende findet
vitr
quelle
Eigentlich ist es besser, die -tOption für den Textmodus zu verwenden, zB ./letsencrypt-auto --apache -m [email protected] --agree-tos --redirect -t
vitr
0

Es kann ein Problem mit TERM oder mit der 'Dialog'-Software auftreten. Versuchen Sie es zu finden (welcher Dialog) und aktualisieren Sie es. Ich habe eine neue Version von dialog installiert und / usr / bin / dialog mit / usr / local / bin / dialog (ln -s ...) neu platziert.

Vyacheslav
quelle
Haben Sie es geschafft, qqqqqqund x(anstelle von normalen Linien) loszuwerden ?
Vitr
@vitr, versuche eine andere / korrekte TERM-Variable einzurichten.
Vyacheslav
TERM=xtermWerke
Vitr