我有一个ACI容器实例,该实例具有根据标准ACI指令安装的文件共享。我必须编辑安装在文件共享所在目录中的文件所有权。现在只有root拥有文件。 与此非常相似的问题,但我正在寻找一个可行的解决方案。 https://github.com/Azure/azurefile-dockervolumedriver/issues/65
编辑:这是要复制的步骤
转到shell.azure.com 在命令行(bash)shell上实例化这些变量:
ACI_PERS_RESOURCE_GROUP=cartoetestgroup
ACI_PERS_STORAGE_ACCOUNT_NAME=cartoteststor$RANDOM
ACI_PERS_LOCATION=yourlocation (e.g. eastus)
ACI_PERS_SHARE_NAME=cartomysharename
如果尚未创建存储帐户,请立即创建
az storage account create \
--resource-group $ACI_PERS_RESOURCE_GROUP \
--name $ACI_PERS_STORAGE_ACCOUNT_NAME \
--location $ACI_PERS_LOCATION \
--sku Standard_LRS
*我不记得为什么使用标准LRS。
将连接字符串导出为环境变量
export AZURE_STORAGE_CONNECTION_STRING=`az storage account show-connection- string --resource-group $ACI_PERS_RESOURCE_GROUP --name
$ACI_PERS_STORAGE_ACCOUNT_NAME --output tsv`
创建文件共享
az storage share create -n $ACI_PERS_SHARE_NAME
确认存储帐户的名称
STORAGE_ACCOUNT=$(az storage account list --resource-group
$ACI_PERS_RESOURCE_GROUP --query "[?contains(name,'$ACI_PERS_STORAGE_ACCOUNT_NAME')].[name]" --output tsv)
echo $STORAGE_ACCOUNT
确认存储密钥
STORAGE_KEY=$(az storage account keys list --resource-group
$ACI_PERS_RESOURCE_GROUP --account-name $STORAGE_ACCOUNT --query "[0].value" --output tsv)
echo $STORAGE_KEY
我建议您下次写下变量值。
如果使用的是现有文件共享,则创建并填充变量:
STORAGE_ACCOUNT=cartoteststor123345
STORAGE_KEY=yourstoragekey
(例如243phasldjgknw083hroawuiefh09u3urf0等)
最后,创建容器...
az container create \
--resource-group $ACI_PERS_RESOURCE_GROUP \
--name tharbemycartodb \
--image sverhoeven/cartodb \
--dns-name-label giveme_a_name_cartodemo \
--ports 80 \
--azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
--azure-file-volume-account-key $STORAGE_KEY \
--azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
--azure-file-volume-mount-path /var/lib/tmpstor \
--cpu 2 --memory 2 \
--dns-name-label whateverIwantToBeAccessedBy \
--ip-address public \
--environment-variables CARTO_HOSTNAME=whateverIwantToBeAccessedBy.mylocation
(例如eastus).azurecontainer.io
整个过程启动并填充(因此站点可以启动并且可以访问)之后,从shell登录到容器
az container exec --resource-group cartoetestgroup --name tharbemycartodb --exec-command "/bin/bash"
将其放入容器后,将内容复制到文件共享中
cp -a /var/lib/postgresql/. /var/lib/tmpstor/
(也许在填充文件夹之前尝试拥有该文件夹?)
然后您可以在复制完成后杀死该容器。
如果您按照上述步骤操作但使用了现有的凭据
ACI_PERS_RESOURCE_GROUP
ACI_PERS_STORAGE_ACCOUNT_NAME
ACI_PERS_LOCATION
ACI_PERS_SHARE_NAME
STORAGE_ACCOUNT
STORAGE_KEY
然后,除了安装位置外,您基本上可以复制上述内容。它应该可以工作,除了不能,因为用户103不拥有包含数据库的文件夹
az container create
--azure-file-volume-mount-path /var/lib/postgresql
查看日志时,您会看到错误消息
这是我的问题开始的地方