linux开启docker mysql_运行MySQL一个预填充的docker容器作为随机(非root)linux用户?

我正在尝试创建一个符合OpenShift标准的预填充MySQL容器映像.

使用指定用户运行容器(遗憾的是)不是我们的选择.

这是一个问题,因为OpenShift只是创建一个没有用户名的随机UID,因此在启动MysqL服务之前在运行时使用脚本设置用户名不是一个选项.

有没有办法让MysqL与docker容器中的任何随机UID一起运行?

编辑:

这个问题背后的想法是能够像这样启动一个MysqL容器

randomuserMysqL的Dockerfile:示例

FROM MysqL:5.7.22

#IMPORTANT: MysqL Container runs init in alphanumerical order!

COPY src/some.sql /docker-entrypoint-initdb.d/

ENV MysqL_ROOT_PASSWORD='somepw'

RUN mkdir -p /var/lib/MysqL2 && \

chown -R MysqL:MysqL /var/lib/MysqL2 && \

chmod -R 777 /var/lib/MysqL2 && \

sed -i 's|/var/lib/MysqL|/var/lib/MysqL2|g' /etc/MysqL/MysqL.conf.d/MysqLd.cnf && \

sed -i 's|exec "$@"||g' /entrypoint.sh && \

/entrypoint.sh MysqLd && \

chmod -R 777 /var/lib/MysqL2/ && \

chown -R MysqL:MysqL /var/lib/MysqL2 && \

find /var/lib/MysqL2/ -name "*.cnf" -exec chmod 775 {} \; && \

echo 'exec "$@"' >> /entrypoint.sh

然后像这样开始

docker run -u 123456789 randomuserMysqL:example

启动容器时导致以下错误

2018-05-22T11:39:35.084034Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table storage engine for 'user' doesn't have this option

2018-05-22T11:39:35.084235Z 0 [ERROR] Aborting

在启动容器时,不可能将用户作为docker ENV传递

edit2:赏金文字不正确.

更正了赏金声明:

预先填充的MysqL数据库需要一个解决方案,而不必将转储文件复制到/docker-entrypoint-initdb.d目录中!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值