mysql - 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"]
解决方案
推荐阅读
- entity-framework - 当属性为空时,如何使用 AutoMapper 忽略源上的属性?
- java - 在 Java 8 中使用可选参数调用方法
- android - Leanback 中的 Android TV 设置菜单
- aws-lambda - Firehose 没有通过 Lambda 将数据推送到 s3?
- python - 将一个矩形分成 N 个相等的子矩形
- sql-server - 使用命令窗口 SQL Server 创建表
- phpunit - PHPUnit 报告异常分配错误
- r - 将成对距离矩阵转换为R中的列格式
- python-3.x - aws emr 无法更改引导程序上的默认 pyspark python
- excel - 如何将变量传递给范围?(VBA)