Azure ACI和文件共享-无法访问卷安装的Linux MSSQL Server

问题描述

我正在Azure容器实例中使用mssql server图像。

在不装载任何卷的情况下,ACI已成功创建并且可以正常工作。但是,当我装载一个卷时,即使由Azure存储帐户(文件共享)制成的容器重新启动后,即使要持久保存数据,ACI也会成功创建,但是无法访问数据库。

在文件共享(acishare)中创建

log secrets 文件夹,但在文件共享中未生成数据。>

任何人都可以提供详细的步骤来解决该问题,或者创建与文件共享为卷的msi服务器docker映像的ACI。

[Azure bash命令创建安装了Azure文件共享卷的ACI]

ACI_PERS_RESOURCE_GROUP=PC
ACI_PERS_STORAGE_ACCOUNT_NAME=pcs1
ACI_PERS_LOCATION=eastus
ACI_PERS_SHARE_NAME=acishare
STORAGE_KEY=$(az storage account keys list --resource-group $ACI_PERS_RESOURCE_GROUP --account-name $ACI_PERS_STORAGE_ACCOUNT_NAME --query "[0].value" --output tsv)

az container create \
--resource-group $ACI_PERS_RESOURCE_GROUP \
--name pcs5 \
--image mcr.microsoft.com/mssql/server \
--dns-name-label pcs5 \
--ports 80 443 1433 \
--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/opt/mssql/ \
--memory 2.5 \
--environment-variables 'SA_PASSWORD'='PxSecret123' 'ACCEPT_EULA'='Y' 'MSSQL_PID=Express'

解决方法

成功创建ACI但无法访问ACI的原因是,mssql服务器无法正常运行。将Azure文件共享安装到容器的路径/var/opt/mssql时,文件共享将覆盖其中的所有文件。但是,文件对于mssql服务器运行是必需的。因此服务器无法启动。

可能的解决方案是将文件共享安装到不存在或不影响mssql服务器运行的新路径。然后,您需要将所需的数据手动传输到安装路径。这不是一个好的解决方案。但是由于文件共享安装的限制,现在没有更好的解决方案。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...