【发布时间】:2021-10-12 03:12:06
【问题描述】:
我在 docker-compose 文件上有不同的服务,这些服务会提取一些图像以在 ACI 上创建容器。
当我将不同的目录和子文件夹挂载到 docker 容器时,我的本地机器上一切正常:
volumes:
- folder/sub_folder/sub/folder:/etc/nginx/certs
但是在 ACI 上启动实例需要使用我使用的 azure_file 驱动程序,但我无法从该文件共享中将子文件夹挂载到路径。
我在撰写文件中创建了一个卷:
volumes:
data-volume:
driver: azure_file
driver_opts:
share_name: acishare
storage_account_name: storageaccount
storage_account_key: /run/secrets/storage_account_key.txt
我已经尝试过这个容器
services:
app:
volumes:
- data-volume:/etc/nginx/
上面的工作正常,但是挂载了文件共享的主目录,这是可以理解的,因为没有指定目录。
我做了一些研究,发现在 AKS 上,可以将文件的目录指定为共享名称。用反斜杠()尝试了这个,但我收到一条错误消息,说文件共享不存在:
volumes:
data-volume:
driver: azure_file
driver_opts:
share_name: acishare/sub_directory/sub_directory
storage_account_name: storageaccount
storage_account_key: /run/secrets/storage_account_key.txt
我也尝试添加卷的路径,但这也不起作用:
volumes:
- data-volume/sub_directory/sub_directory:/etc/nginx/
将 Azure 文件共享的不同子文件夹挂载到 ACI 的正确方法是什么?
PS:我的代码库在 github 上,我正在使用工作流将 upload-batch 文件复制到 azure 文件共享,因为我需要将子文件夹复制(挂载)到容器中的 wwwroot 目录。
repo 还有一些配置文件需要直接挂载到容器中。这些文件也不在根文件夹中,而是在不同的子文件夹中。
如果有更好的选择来处理这种情况,我不介意。我曾尝试使用 blob 存储,但无法找到解决方法。
【问题讨论】:
-
你解决了吗?我也有兴趣安装 Azure 文件共享子目录。
-
您好,如果我的回答对您有帮助,您可以接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢
标签: docker docker-compose docker-volume azure-container-instances azure-files