首页 > 解决方案 > debconf:DbDriver“密码”警告:无法打开 /var/cache/debconf/passwords.dat:权限被拒绝

问题描述

我在构建 docker 映像时得到了这个。

debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Permission denied
debconf: DbDriver "passwords" warning: could not write /var/cache/debconf/passwords.dat-new: Permission denied
debconf: DbDriver "passwords" warning: /var/cache/debconf/passwords.dat-new is locked by another process: Bad file descriptor
debconf: DbDriver "passwords" warning: could not write /var/cache/debconf/passwords.dat-new: Bad file descriptor
debconf: DbDriver "passwords" warning: could not write /var/cache/debconf/passwords.dat-new: Bad file descriptor
debconf: DbDriver "passwords" warning: could not flush /var/cache/debconf/passwords.dat-new: Invalid argument
debconf: DbDriver "passwords" warning: could not sync /var/cache/debconf/passwords.dat-new: Invalid argument
debconf: DbDriver "passwords" warning: rename failed: No such file or directory
debconf: DbDriver "templatedb": could not write /var/cache/debconf/templates.dat-new: Permission denied

我得到的错误与 debconf 一致,而不与 sudo 一致。在这个特定的图像中,我试图从头开始安装 mysql-server,并且我将 root 密码作为构建参数。

FROM ubuntu:16.04

ARG MYSQL_PWD_INSTALLATION
RUN apt-get update -y \
      && apt-get -y install sudo
ENV user ujala

RUN useradd -m -d /home/${user} ${user} && \
    chown -R ${user} /home/${user} && \
    adduser ${user} sudo && \
    echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER ${user}

WORKDIR /home/${user}

RUN sudo apt-get update -y \
    && { \
            echo "mysql-server mysql-server/root_password password $MYSQL_PWD_INSTALLATION"; \
            echo "mysql-server mysql-server/root_password_again password $MYSQL_PWD_INSTALLATION"; \
    } | debconf-set-selections \
    && sudo apt-get install mysql-server -y

RUN set -x \
    && echo "[mysqld]" >> /etc/mysql/my.cnf \
    && echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf \
    && echo "default-authentication-plugin=mysql_native_password" >> /etc/mysql/my.cnf \
    && chown mysql:mysql -R /var/lib/mysql 

VOLUME /var/lib/mysql
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 3306 33060
CMD ["mysqld"]

标签: mysqldockerfiledebconf

解决方案


推荐阅读