I'm trying to get Let's Encrypt inside the official Docker Wordpress container.

Setup the environment

$ cat docker-compose.yml
  hostname: some.fqdn.com
  image: wordpress
    - db:mysql
    - 80:80
    - 443:443

  image: mariadb

$ docker-compose -f docker-compose.yml up -d
$ docker exec -ti root_wordpress_1 bash

Install 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:
Please see the logfiles in /var/log/letsencrypt for more details.

More logs

$ 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>
  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
  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
  File "/root/.local/share/letsencrypt/local/lib/python2.7/site-packages/dialog.py", line 1765, in _widget_with_no_output
    widget_name, output))

Anyone got any clues here?

I want to build an image on top of the official Wordpress image that automatically adds Let's Encrypt.


2 Answers 2


I believe this could be the issue with TERM, because the client uses some terminal user interfaceenter image description here,
but even after fixing this with export TERM=xterm, you'll hit the issue with apache restart, when the letsencrypt client restarts apache and the wordpress container has been killed immediately. Thanks to the answer How to automatically start a service when running a docker container? I've overcome this in my custom WordPress image with the tail approach, you can have a look for more ideas there, as you can see from the screenshot, it works))


the following steps help to fix the issue with lines in the dialog (in addition to previously applied 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"

enter image description here

You can also run the client in 2 other modes

  • -t text UI mode
  • -n, --non-interactive, --noninteractive Run without ever asking for user input. This may require additional command line flags; the client will try to explain which ones are required if it finds one missing
  • 1
    actually, it's better to use -t option for text mode, e.g. ./letsencrypt-auto --apache -m youremail@domain.com --agree-tos --redirect -t
    – vitr
    Mar 23, 2016 at 2:09
  • What exactly to set TERM to obviously depends on what sort of terminal you are running. xterm basically requires an X11 window or similar with GUI decorations; an example of a more traditional "modem line" type of terminal with wide support across terminal emulators is vt220.
    – tripleee
    Apr 8, 2021 at 6:57

It can be issue with TERM or with 'dialog' software. Try to find it (which dialog) and update it. I've installed a new version of dialog and repplaced /usr/bin/dialog with /usr/local/bin/dialog (ln -s ... )

  • have you managed to get rid of qqqqqq and x (instead of normal lines) ?
    – vitr
    Mar 23, 2016 at 2:13
  • @vitr, try to set up different/correct TERM variable.
    – Vyacheslav
    Apr 13, 2016 at 4:29
  • TERM=xterm works
    – vitr
    Apr 13, 2016 at 6:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.