chown:更改“/var/lib/mysql/”的所有权:不允许操作

问题描述 投票:0回答:4

我正在尝试在 openshift origin 上部署 mariadb 映像。我在 docker 文件中使用 mariadb:10.2.12。它在本地工作正常,但当我尝试在 openshift origin 上部署时出现以下错误。

初始化数据库 chown:更改“/var/lib/mysql/”的所有权:不允许操作 无法将数据库目录的所有权更改为“mysql” 用户。检查您是否拥有必要的权限,然后重试。

chown 命令来自 mariadb:10.2.12 Docker 文件。

最初我遇到了 openshift origin 上不允许的 root 用户问题,所以现在我使用

用户 mysql

在 docker 文件中。现在我没有收到以 root 身份运行的警告,但 openshift origin 仍然不喜欢 chown。请记住,我不是原始管理员,只是一个用户。我的docker文件如下:

FROM mariadb:10.2.12

ENV MYSQL_DATABASE="db_profile"

COPY ./my.cnf /etc/mysql/my.cnf
COPY ./db_profile.sql /docker-entrypoint-initdb.d/

USER mysql

EXPOSE 3306

在本地我运行如下:

docker 构建。 -t laeeq/ligandprofiledb:0.0.1

docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=mypassword -d laeeq/ligandprofiledb:0.0.1

有解决方法来解决这个 chown 问题吗?

docker openshift mariadb dockerfile openshift-origin
4个回答
2
投票

DockerHub 上的 MariaDB 镜像没有遵循不需要以

root
用户身份运行的良好实践。

您应该使用 OpenShift 提供的 MariaDB 镜像。例如:

centos/mariadb-102-centos7

参见:

应该能够从 OpenShift Web 控制台的服务目录浏览器中选择 MariaDB,或者从命令行使用

mariadb
模板。


0
投票
$ ls -ld /var/lib
drwxr-xr-x 79 root root 4096 Oct  7 20:58 /var/lib

因此,要更改该目录中的任何内容,包括

/var/lib/mysql/
,您需要是
root


0
投票

您应该在 Dockerfile 中的 USER mysql 之前更改所有权,或者如果您需要以 root 身份运行容器,您应该定义服务帐户并使其具有部署特权。您可以按照此操作https://github.com/openshift/origin/issues/9131#issuecomment-231952259


0
投票

如果您使用nfs存储进行持久存储。

将 (insecure,no_root_squash) 添加到 /etc/exports 文件中并重新启动 NFS 服务。这应该可以解决你的问题。

/sql/path *(不安全,no_root_squash)

© www.soinside.com 2019 - 2024. All rights reserved.