chown:更改“/var/lib/mysql/”的所有权:不允许操作
chown: changing ownership of '/var/lib/mysql/': Operation not permitted
我正在尝试在 openshift origin 上部署 mariadb 映像。我在 docker 文件中使用 mariadb:10.2.12。它在本地工作正常,但当我尝试在 openshift origin 上部署时出现以下错误。
Initializing database
chown: changing ownership of '/var/lib/mysql/': Operation not permitted
Cannot change ownership of the database directories to the 'mysql'
user. Check that you have the necessary permissions and try again.
chown 命令来自mariadb:10.2.12 Docker 文件
最初我遇到了 root 用户的问题,这在 openshift origin 上是不允许的,所以现在我正在使用
USER mysql
在 docker 文件中。现在我没有收到 运行ning 作为 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 build . -t laeeq/ligandprofiledb:0.0.1
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=mypassword -d laeeq/ligandprofiledb:0.0.1
是否有解决此 chown 问题的解决方法?
$ ls -ld /var/lib
drwxr-xr-x 79 root root 4096 Oct 7 20:58 /var/lib
因此,要更改该目录中的任何内容,包括 /var/lib/mysql/
,您需要 root
。
DockerHub 上的 MariaDB 镜像没有遵循不要求 运行 成为 root
用户的良好做法。
您应该改用 OpenShift 提供的 MariaDB 映像。例如:
centos/mariadb-102-centos7
参见:
应该能够从 OpenShift Web 控制台中的服务目录浏览器 select MariaDB,或者从命令行使用 mariadb
模板。
您应该在 Dockerfile 中的 USER mysql 之前更改所有权,或者如果您需要 运行 容器作为根,您应该定义服务帐户并使其具有部署特权。你可以关注这个https://github.com/openshift/origin/issues/9131#issuecomment-231952259
我正在尝试在 openshift origin 上部署 mariadb 映像。我在 docker 文件中使用 mariadb:10.2.12。它在本地工作正常,但当我尝试在 openshift origin 上部署时出现以下错误。
Initializing database chown: changing ownership of '/var/lib/mysql/': Operation not permitted Cannot change ownership of the database directories to the 'mysql' user. Check that you have the necessary permissions and try again.
chown 命令来自mariadb:10.2.12 Docker 文件
最初我遇到了 root 用户的问题,这在 openshift origin 上是不允许的,所以现在我正在使用
USER mysql
在 docker 文件中。现在我没有收到 运行ning 作为 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 build . -t laeeq/ligandprofiledb:0.0.1
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=mypassword -d laeeq/ligandprofiledb:0.0.1
是否有解决此 chown 问题的解决方法?
$ ls -ld /var/lib
drwxr-xr-x 79 root root 4096 Oct 7 20:58 /var/lib
因此,要更改该目录中的任何内容,包括 /var/lib/mysql/
,您需要 root
。
DockerHub 上的 MariaDB 镜像没有遵循不要求 运行 成为 root
用户的良好做法。
您应该改用 OpenShift 提供的 MariaDB 映像。例如:
centos/mariadb-102-centos7
参见:
应该能够从 OpenShift Web 控制台中的服务目录浏览器 select MariaDB,或者从命令行使用 mariadb
模板。
您应该在 Dockerfile 中的 USER mysql 之前更改所有权,或者如果您需要 运行 容器作为根,您应该定义服务帐户并使其具有部署特权。你可以关注这个https://github.com/openshift/origin/issues/9131#issuecomment-231952259