Utilisation de Let's Encrypt dans le conteneur Wordpress officiel de Docker

8

J'essaie d'obtenir Let's Encrypt dans le conteneur Docker Wordpress officiel.

Configurer l'environnement

$ 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

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

Plus de journaux

$ 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

Quelqu'un a des indices ici?

Je veux créer une image au-dessus de l'image officielle de Wordpress qui ajoute automatiquement Let's Encrypt.

vpetersson
la source

Réponses:

4

Je pense que cela pourrait être le problème TERM, car le client utilise une interface utilisateur de terminal entrez la description de l'image ici,
mais même après avoir corrigé cela avec export TERM=xterm, vous rencontrerez le problème avec le redémarrage d'apache, lorsque le client letsencrypt redémarre apache et que le conteneur wordpress a été tué immédiatement. Merci à la réponse Comment démarrer automatiquement un service lors de l'exécution d'un conteneur Docker? J'ai surmonté cela dans mon image WordPress personnalisée avec l'approche de la queue, vous pouvez y chercher plus d'idées, comme vous pouvez le voir sur la capture d'écran, cela fonctionne))

mise à jour

les étapes suivantes aident à résoudre le problème avec les lignes dans la boîte de dialogue (en plus de celles précédemment appliquées 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

entrez la description de l'image ici

Vous pouvez également exécuter le client dans 2 autres modes

  • -t mode d'interface texte
  • -n, --non-interactive, --noninteractive Courir sans jamais demander de l' entrée de l' utilisateur. Cela peut nécessiter des indicateurs de ligne de commande supplémentaires; le client essaiera d'expliquer lesquels sont nécessaires s'il en trouve un manquant
vitr
la source
en fait, il vaut mieux utiliser l' -toption pour le mode texte, par exemple ./letsencrypt-auto --apache -m [email protected] --agree-tos --redirect -t
vitr
0

Il peut s'agir d'un TERM ou d'un logiciel de «dialogue». Essayez de le trouver (quelle boîte de dialogue) et de le mettre à jour. J'ai installé une nouvelle version de dialog et remplacé / usr / bin / dialog par / usr / local / bin / dialog (ln -s ...)

Vyacheslav
la source
avez-vous réussi à vous débarrasser de qqqqqqet x(au lieu des lignes normales)?
vitr
@vitr, essayez de configurer une variable TERM différente / correcte.
Vyacheslav
TERM=xtermtravaux
vitr