从头盔图访问/docker-entrypoint-initdb.d

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从头盔图访问/docker-entrypoint-initdb.d相关的知识,希望对你有一定的参考价值。

我正在尝试使用https://github.com/helm/charts/tree/master/stable/mariadb#initialize-a-fresh-instance上的官方头盔图初始化Mariadb的新实例(将我的.sql文件放在/docker-entrypoint-initdb.d中)。

但我发现说明不太清楚。 “为了执行脚本,它们必须位于图表文件夹文件/ docker-entrypoint-initdb.d中,以便它们可以作为ConfigMap使用。”

因为我设置Mariadb集群的唯一方法是使用他们的helm install --name my-release stable/mariadb -f values-production.yaml我很困惑。

这个文件夹在哪里?


编辑:

我下载了https://github.com/helm/charts/tree/master/stable/mariadb并放置(整个文件夹)并将我的sql文件放在files/docker-entrypoint-initdb.d中。

然后我用helm package ./mariadb跟随helm install ./mariadb -f ./mariadb/values-production.yaml。但主pod具有“CrashLoopBackOff”作为状态。

这是主日志

==> ** Starting MariaDB setup **
==> Validating settings in mysql_*/MARIADB_* env vars..
==> Initializing mariadb database...
==> Persisted data detected. Restoring...
==> Loading user's custom files from /docker-entrypoint-initdb.d ...
==> Stopping mariadb...

我也尝试过这种方式,但数据库不断崩溃

kubectl create configmap db-scheme --from-file=db.sql
helm install --name db-test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD --set initdbScriptsConfigMap=db-scheme

这是日志:


Aaditi:

我创建了一个名为files/docker-entrypoint-initdb.d的文件夹

我当前的目录 . ├── values-production.yml │ ├── files │ └── docker-entrypoint-initdb.d │ └── db.sql 并从当前目录运行此命令

helm install --name test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD

Mariadb启动但没有我的sql表。

答案

该图表有点尴尬,但让我解释一下,他们将创建this configmap,它读取该文件夹的信息(相对于values.yaml路径)。

为了您的运气,您还有两个选择:

  • 将您想要内联的脚本传递给您的values.yaml(Line 122
  • 使用您的脚本创建一个configmap,并在您的values.yaml(Line 129)上引用该名称
另一答案

我的问题比看起来更复杂:https://github.com/bitnami/bitnami-docker-mariadb/issues/182

相比之下,创建一个configmap确实有效:

kubectl create configmap db-scheme --from-file=db.sql

helm install --name db-test stable/mariadb -f .values-production.yml --set rootUser.password=ROOT_PASSWORD --set replication.password=REPLICATION_PASSWORD --set initdbScriptsConfigMap=db-scheme

以上是关于从头盔图访问/docker-entrypoint-initdb.d的主要内容,如果未能解决你的问题,请参考以下文章

智能安全帽,头盔式摄像头技术发展历史和方案

docker-entrypoint exec nginx 未找到

在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”

使rabbitmq群集可公开访问

帽檐下的雪山丨SANDBOX头盔 18-19新品到店

# BERN vs SANDBOX 单板头盔史诗级PK结果发布丨含中奖名单