apt-get install в образе докера Ubuntu 16.04: /etc/resolv.conf: устройство или ресурс занят
Я получаю сообщение об ошибке ниже при запуске apt-get install из довольно ванильного образа Ubuntu 16.04:
ln: cannot remove '/etc/resolv.conf': Device or resource busy
dpkg: error processing package resolvconf (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
resolvconf
Похоже, что пакеты установлены правильно. Как это исправить?
Мой Dockerfile выглядит так:
FROM ubuntu:16.04
MAINTAINER Me Myself <me@myself.com>
RUN apt-get update && apt-get install -y git nano
RUN apt-get upgrade -y
# set the timezone. Note: there is an Ubuntu 16.04 bug which
# requires this to be done this way:
# http://stackru.com/questions/40234847/docker-timezone-in-ubuntu-16-04-image/40235306#40235306
RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
RUN locale-gen en_US en_US.UTF-8 de_DE.UTF-8
ENV PATH="/opt/xyz/bin:${PATH}"
2 ответа
Как указано в https://github.com/moby/moby/issues/1297 вы можете добавить RUN echo "resolvconf resolvconf/linkify-resolvconf boolean false" | debconf-set-selections
в ваш Dockerfile. Таким способом можно установить resolvconf
внутри контейнера.
С вышеупомянутым комментарием и ответом @Christian Berendt я все еще получаю эти ошибки:
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Вот мое полное решение, добавив эти строки в Dockerfile:
Эти строки помогают установить resolvconf с ошибками debconf
RUN apt-get update
RUN apt-get install -y apt-utils debconf-utils dialog
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN echo "resolvconf resolvconf/linkify-resolvconf boolean false" | debconf-set-selections
RUN apt-get update
RUN apt-get install -y resolvconf