首页 > 解决方案 > 在 docker 容器中运行 azcopy 会引发 spawn EACCES 错误

问题描述

我创建了以下 docker 文件:

FROM node:12.14.0-alpine
RUN apk upgrade --update-cache --available && \
    apk add openssl && \
    apk add --no-cache --virtual python libc6-compat make g++ pkgconf libsecret-dev && \
    rm -rf /var/cache/apk/*

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
WORKDIR /app

COPY . .

RUN npm install --registry https://registry.npmjs.org @azure-tools/azcopy-node

EXPOSE 8080
CMD ["npm", "run", "start"]

在容器内运行 azcopy 命令时,出现以下错误:

spawn /app/node_modules/@azure-tools/azcopy-linux/dist/bin/azcopy_linux_amd64 EACCES

我该如何解决?

标签: node.jsdockerazcopy

解决方案


我必须在 docker 文件中添加对 azprocess 的权限,现在它可以工作了:

FROM node:12.14.0-alpine
RUN apk upgrade --update-cache --available && \
    apk add openssl && \
    apk add --no-cache --virtual python libc6-compat make g++ pkgconf libsecret-dev && \
    rm -rf /var/cache/apk/*

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
WORKDIR /app

COPY . .

RUN npm install --registry https://registry.npmjs.org @azure-tools/azcopy-node
RUN chmod a+x /app/node_modules/@azure-tools/azcopy-linux/dist/bin/azcopy_linux_amd64

EXPOSE 8080
CMD ["npm", "run", "start"]


推荐阅读