gpt4 book ai didi

mongodb - Azure 容器实例 - CLI 和 YAML 文件给出不同的结果

转载 作者:行者123 更新时间:2023-12-03 04:59:55 27 4
gpt4 key购买 nike

我正在尝试将 Mongo 作为容器组的一部分部署到 Azure 容器实例上。为此,我使用具有文件共享的存储帐户来保存 mongo 数据。无法将卷挂载到 /data/db 默认位置,因此我将其挂载到其他位置并使用 --db-path 启动 mongod > 旗帜。使用 CLI,这一切都可以正常工作,完整命令如下。

但是,当我想将所有这些命令翻译到我的 YAML 配置文件中时,它不起作用。 Mongo 因未知文件或目录错误而崩溃。如果我在没有 --db-path 标志的情况下启动容器,但仍然挂载该卷,我可以在正在运行的容器中执行并查看该卷是否存在并已附加。我什至可以通过 Azure 门户在共享中手动创建文件夹,并查看它们出现在容器中。

文档和示例有点薄弱,尤其是基于 YAML 的示例。与容器组的最大区别是必须定义一个与容器分开的命名卷,该卷由 volumeMounts 属性使用。这只是语法错误吗? CLI 命令和 YAML 在某些方面不等效吗?

CLI 命令

az container create
--resource-group rsenu-hassPilots-group
--name mongo
--image mongo
--azure-file-volume-account-name <account>
--azure-file-volume-account-key "<key>" --azure-file-volume-share-name mongodata
--azure-file-volume-mount-path "/data/mongoaz"
--ports 27017
--cpu 1
--ip-address public
--memory 1.5
--os-type Linux
--protocol TCP
--command-line "mongod --dbpath=/data/mongoaz"

YAML 配置

apiVersion: 2018-10-01
location: uksouth
name: trustNewArtGroup
properties:
containers:
- name: mongo
properties:
image: mongo:4.2.3
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 27017
volumeMounts:
- name: database
mountPath: /data/azstorage
environmentVariables:
- name: 'MONGO_INITDB_DATABASE'
value: 'trust-new-art-db'
command:
- "mongod --dbpath=/data/azstorage"
osType: Linux
ipAddress:
type: Public
dnsNameLabel: trustnewart
ports:
- protocol: tcp
port: '27017'
volumes:
- name: database
azureFile:
sharename: mongodata
storageAccountName: <account>
storageAccountKey: <key>
tags: null
type: Microsoft.ContainerInstance/containerGroups

最佳答案

借助此 page in the documentation 的一些帮助,我发现这是一个语法问题。覆盖 YAML 配置文件中入口点的正确方法如下:

command: ['mongod', '--dbpath', '/data/azstorage']

关于mongodb - Azure 容器实例 - CLI 和 YAML 文件给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60128683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com