Usando Let's Encrypt dentro del contenedor oficial de Wordpress de Docker

8

Estoy tratando de obtener Let's Encrypt dentro del contenedor oficial de Docker Wordpress.

Configurar el entorno

$ 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

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

Más registros

$ 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

¿Alguien tiene alguna pista aquí?

Quiero construir una imagen sobre la imagen oficial de Wordpress que agrega automáticamente Let's Encrypt.

vpetersson
fuente

Respuestas:

4

Creo que este podría ser el problema TERM, porque el cliente usa alguna interfaz de usuario de terminal ingrese la descripción de la imagen aquí,
pero incluso después de solucionar esto export TERM=xterm, encontrará el problema con el reinicio de apache, cuando el cliente letsencrypt reinicia Apache y el contenedor de WordPress ha sido eliminado de inmediato. Gracias a la respuesta ¿Cómo iniciar automáticamente un servicio cuando se ejecuta un contenedor acoplable? He superado esto en mi imagen personalizada de WordPress con el enfoque de cola, puedes buscar más ideas allí, como puedes ver en la captura de pantalla, funciona))

actualizar

Los siguientes pasos ayudan a solucionar el problema con las líneas en el cuadro de diálogo (además de las aplicadas anteriormente 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

ingrese la descripción de la imagen aquí

También puede ejecutar el cliente en otros 2 modos

  • -t modo de interfaz de usuario de texto
  • -n, --non-interactive, --noninteractive Ejecutar sin tener que pedir la entrada del usuario. Esto puede requerir banderas de línea de comando adicionales; el cliente intentará explicar cuáles son necesarios si encuentra que falta uno
vitr
fuente
en realidad, es mejor usar la -topción para el modo de texto, por ejemplo ./letsencrypt-auto --apache -m [email protected] --agree-tos --redirect -t
vitr
0

Puede ser un problema con TERM o con el software 'diálogo'. Intenta encontrarlo (qué diálogo) y actualízalo. Instalé una nueva versión de dialog y reemplacé / usr / bin / dialog con / usr / local / bin / dialog (ln -s ...)

Vyacheslav
fuente
¿Has logrado deshacerte de qqqqqqy x(en lugar de las líneas normales)?
vitr
@vitr, intente configurar una variable TERM diferente / correcta.
Vyacheslav
TERM=xtermfunciona
vitr