容器上的 azcopy 安装错误 - "panic: mkdir : no such file or directory"

azcopy installation on container error - "panic: mkdir : no such file or directory"

我正在尝试 运行 容器内的 azcopy v10 将一些文件导出到 azure blob 存储。

为了在容器镜像中包含 azcopy 实用程序,我在 Dockerfile 中使用了以下指令。

RUN /bin/bash -c 'wget https://aka.ms/downloadazcopy-v10-linux && \
  tar -xvf downloadazcopy-v10-linux && \
  cp ./azcopy_linux_amd64_*/azcopy /usr/bin/ && \
  chmod 775 /usr/bin/azcopy && \
  rm downloadazcopy-v10-linux && \
  rm -rf azcopy_linux_amd64_*'

但是当我 运行 azcopy 命令时看到下面的错误。

ns@master-0:/opt/myapp$ azcopy
panic: mkdir : no such file or directory

goroutine 1 [running]:
github.com/Azure/azure-storage-azcopy/v10/common.PanicIfErr(...)
        /home/vsts/work/1/s/common/lifecyleMgr.go:674
main.main()
        /home/vsts/work/1/s/main.go:55 +0x4c5

不确定 file/dir 错误消息指的是哪个。任何建议都会有所帮助。

我在 github 中发现了问题: https://github.com/Azure/azure-storage-azcopy/issues/903

如 github link.

中所述,通过设置以下 env 变量,我能够让 azcopy 工作
mkdir /opt/myapp/azlogs
export AZCOPY_LOG_LOCATION=/opt/myapp/azlogs

这基本上是 azcopy 的日志位置。我正在考虑将这个 env 变量作为图像的一部分,而不是每次都必须输入它。

编辑 1: 我遇到了另一个错误。

panic: mkdir plans: permission denied

看起来 azcopy 想要在当前工作目录上创建一个 plans 目录。因此,请确保您是 运行 azcopy as 的用户有权在当前工作目录上创建新文件夹。