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

时间:2018-01-17 16:57:15

标签: docker openshift mariadb dockerfile openshift-origin

我正在尝试在openshift起源上部署mariadb图像。我在我的docker文件中使用mariadb:10.2.12。它在本地工作正常,但当我尝试在openshift原点上部署时,我得到以下错误。

  

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

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

最初我遇到root用户的问题,这是openhift起源不允许的,所以现在我正在使用

  

USER mysql

在docker文件中。现在我没有得到以root身份运行的警告,但仍然是openhift 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问题的解决方法?

3 个答案:

答案 0 :(得分:1)

DockerHub上的MariaDB图像不遵循不需要以root用户身份运行的良好做法。

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

centos/mariadb-102-centos7

请参阅:

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

答案 1 :(得分:0)

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

因此,要更改该目录中的任何内容,包括/var/lib/mysql/,您需要root

答案 2 :(得分:0)

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

进行操作