我正在尝试将我的MariaDB存储在Azure存储帐户中
在我的YAML中,我用以下代码定义了MariaDB图像:
- name: mariadb
properties:
image: mariadb:latest
environmentVariables:
- name: "MYSQL_INITDB_SKIP_TZINFO"
value: "1"
- name: "MYSQL_DATABASE"
value: "metrics"
- name: "MYSQL_USER"
value: "user"
- name: "MYSQL_PASSWORD"
value: "password"
- name: "MYSQL_ROOT_PASSWORD"
value: "root_password"
ports:
- port: 3306
protocol: TCP
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
volumeMounts:
- mountPath: /var/lib/mysql
name: filesharevolume
我的卷定义如下所示:
volumes:
- name: filesharevolume
azureFile:
sharename: <share-name>
storageAccountName: <name>
storageAccountKey: <key>
然而,当这个映像启动时,它会终止,并显示一个错误,解释ibdata1文件大小与配置文件中的大小不匹配。
如果删除volumeMount,数据库映像将正常工作。
我是不是漏掉了什么?
1条答案
按热度按时间lzfw57am1#
对于此问题,原因已在Note中显示:
将Azure Files共享装载到容器示例类似于Docker绑定装载。请注意,如果将共享装载到存在文件或目录的容器目录中,这些文件或目录将被装载遮盖,并且在容器运行时无法访问。
文件共享挂载到现有目录上,然后覆盖该目录。MariaDB将根据要求重建ibdata1文件,但它是空的,与之前的不匹配。
对于Azure文件共享的使用,我建议您只将文件共享挂载到之前不存在的目录以持久化数据。或者该目录中的文件不影响应用程序的正常运行。