Usiamo Let's Encrypt nel contenitore ufficiale di Wordpress di Docker


8

Sto cercando di ottenere Let's Encrypt nel contenitore ufficiale di Docker Wordpress.

Imposta l'ambiente

$ 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

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

Più registri

$ 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

Qualcuno ha qualche indizio qui?

Voglio creare un'immagine sopra l'immagine ufficiale di Wordpress che aggiunge automaticamente Let's Encrypt.

Risposte:


4

Credo che questo potrebbe essere il problema TERM, poiché il client utilizza un'interfaccia utente terminale inserisci qui la descrizione dell'immagine,
ma anche dopo averlo risolto con export TERM=xterm, colpirai il problema con il riavvio di apache, quando il client letsencrypt riavvia apache e il contenitore di wordpress è stato immediatamente ucciso. Grazie alla risposta Come avviare automaticamente un servizio quando si esegue un contenitore docker? L'ho superato nella mia immagine WordPress personalizzata con l'approccio della coda, puoi cercare più idee lì, come puoi vedere dallo screenshot, funziona))

aggiornare

i seguenti passaggi aiutano a risolvere il problema con le righe nella finestra di dialogo (oltre a quelle precedentemente applicate 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

inserisci qui la descrizione dell'immagine

È inoltre possibile eseguire il client in altre 2 modalità

  • -t modalità UI di testo
  • -n, --non-interactive, --noninteractive Run senza mai chiedere per l'input dell'utente. Ciò potrebbe richiedere ulteriori flag della riga di comando; il cliente proverà a spiegare quali sono richiesti se ne trova uno mancante

in realtà, è meglio usare l' -topzione per la modalità testo, ad es. ./letsencrypt-auto --apache -m youremail@domain.com --agree-tos --redirect -t
vitr

0

Può essere un problema con TERM o con il software "dialog". Prova a trovarlo (quale finestra di dialogo) e aggiornalo. Ho installato una nuova versione di dialog e ho sostituito / usr / bin / dialog con / usr / local / bin / dialog (ln -s ...)


sei riuscito a sbarazzarti di qqqqqqe x(invece delle normali linee)?
vitr

@vitr, prova a impostare una variabile TERM diversa / corretta.
Vyacheslav,

TERM=xtermfunziona
vitr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.