我正在尝试在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问题的解决方法?
答案 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
进行操作