installing `lightdm` in Dockerfile raises interactive keyboard layout menu

11,939

Solution 1

This should work:

DEBIAN_FRONTEND=noninteractive apt-get install lightdm -y

I had the same problem installing CUDA and this fixed it.

Solution 2

  1. copy a working /etc/default/keyboard file to the directory that contains the Dockerfile
  2. Add the following line to your Dockerfile before installing xdm or lightdm

    COPY ./keyboard /etc/default/keyboard

Example keyboard file:

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="intl"
XKBOPTIONS=""

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz
BACKSPACE="guess"
Share:
11,939
lurscher
Author by

lurscher

Updated on June 03, 2022

Comments

  • lurscher
    lurscher almost 2 years

    I have the following Dockerfile:

    # Pull from CentOS RPM Build Image
    FROM ubuntu
    
    # Update the image
    RUN apt-get update -y
    RUN apt-get install lightdm -y
    

    The problem I have is when I'm building this container with docker build -t dumbcontainer ., at some point I get an interactive menu for choosing a keyboard layout:

    Adding system user `lightdm' (UID 106) ...
    Adding new user `lightdm' (UID 106) with group `lightdm' ...
    Creating home directory `/var/lib/lightdm' ...
    usermod: no changes
    usermod: no changes
    usermod: no changes
    Adding group `nopasswdlogin' (GID 109) ...
    Done.
    Setting up libnih-dbus1:amd64 (1.0.3-4.3ubuntu1) ...
    Setting up mountall (2.54ubuntu1) ...
    Setting up perl-modules-5.22 (5.22.1-9) ...
    Setting up libperl5.22:amd64 (5.22.1-9) ...
    Setting up perl (5.22.1-9) ...
    update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode
    Setting up libpython2.7-stdlib:amd64 (2.7.11-7ubuntu1) ...
    Setting up python2.7 (2.7.11-7ubuntu1) ...
    Setting up libpython-stdlib:amd64 (2.7.11-1) ...
    Setting up python (2.7.11-1) ...
    Setting up libtalloc2:amd64 (2.1.5-2) ...
    Setting up libtevent0:amd64 (0.9.28-0ubuntu0.16.04.1) ...
    Setting up libroken18-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libasn1-8-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libhcrypto4-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libheimbase1-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libwind0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libhx509-5-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libkrb5-26-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libheimntlm0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libgssapi3-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1) ...
    Setting up libsasl2-modules-db:amd64 (2.1.26.dfsg1-14build1) ...
    Setting up libsasl2-2:amd64 (2.1.26.dfsg1-14build1) ...
    Setting up libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.1) ...
    Setting up libtdb1:amd64 (1.3.8-2) ...
    Setting up libldb1:amd64 (2:1.1.24-1ubuntu3) ...
    Setting up libpython2.7:amd64 (2.7.11-7ubuntu1) ...
    Setting up python-talloc (2.1.5-2) ...
    Setting up samba-libs:amd64 (2:4.3.9+dfsg-0ubuntu0.16.04.2) ...
    Setting up libsmbclient:amd64 (2:4.3.9+dfsg-0ubuntu0.16.04.2) ...
    Setting up libtxc-dxtn-s2tc0:amd64 (0~git20131104-1.1) ...
    update-alternatives: using /usr/lib/x86_64-linux-gnu/libtxc_dxtn_s2tc.so.0 to provide /usr/lib/x86_64-linux-gnu/libtxc_dxtn.so (libtxc-dxtn-x86_64-linux-gnu) in auto mode
    Setting up bzip2 (1.0.6-8) ...
    Setting up distro-info-data (0.28ubuntu0.1) ...
    Setting up eject (2.1.5+deb1+cvs20081104-13.1) ...
    Setting up libmagic1:amd64 (1:5.25-2ubuntu1) ...
    Setting up file (1:5.25-2ubuntu1) ...
    Setting up iproute2 (4.3.0-1ubuntu3) ...
    Setting up ifupdown (0.8.10ubuntu1) ...
    Creating /etc/network/interfaces.
    Setting up libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1) ...
    Setting up libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1) ...
    Setting up isc-dhcp-client (4.3.3-5ubuntu12) ...
    Setting up isc-dhcp-common (4.3.3-5ubuntu12) ...
    Setting up keyboard-configuration (1.108ubuntu15) ...
    debconf: unable to initialize frontend: Dialog
    debconf: (TERM is not set, so the dialog frontend is not usable.)
    debconf: falling back to frontend: Readline
    Configuring keyboard-configuration
    ----------------------------------
    
    The layout of keyboards varies per country, with some countries having multiple
    common layouts. Please select the country of origin for the keyboard of this
    computer.
    
      1. Afghani                                     48. Irish
      2. Albanian                                    49. Italian
      3. Amharic                                     50. Japanese
      4. Arabic                                      51. Japanese (PC-98xx Series)
      5. Arabic (Morocco)                            52. Kazakh
      ........
    

    I try putting an option, but the process just stalls at that point

    Is there any way that I can choose an option interactively, or have docker pass an option when asked to do so?

  • ldg
    ldg almost 8 years
    FYI - this does work (setting the TERM env) if you don't mind the interactive prompt (which you seem to be ok with). If you want something completely auto, you would need to see how to spec the keyboard option some other way. But also what @bmitch said. Vagrant or similar may be a better option.
  • Vivek Shankar
    Vivek Shankar almost 7 years
    Had the same problem...these steps didn't work for me. Stuck with the same interactive menu.
  • Nicu Stiurca
    Nicu Stiurca about 6 years
    Thank you!! I was only trying to install an X server in a Dockerfile, but the DEBIAN_FRONTEND=noninteractive did the trick just as well!
  • Mohsin Bukhari
    Mohsin Bukhari over 4 years
    @arhuaco Hi, can you please share your Dockerfile for installing CUDA?