node.js - 在 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
我该如何解决?
解决方案
我必须在 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"]
推荐阅读
- python - 有没有办法在没有终端的情况下使用 glade 应用程序?
- jquery - 如何修复布尔检查并检查 var 是否未定义
- python - 读取 \yyyy\mm\dd\HH\MM\ 范围内的文件
- mysql - 如何从 phpmyadmin 将 mysqli 默认列结构设置为大写
- xml - 如何将替换的更改附加到 XML 节点?
- java - 处理 RestClientException 和 HttpClientErrorException
- gtk - GtkTreeView:如何停止选择栏覆盖背景-rgba设置
- r - 可用的 r markdown 主题列表
- jquery - 如何使用 jQuery 和 Ajax 验证表单
- java - 无法访问控制器内的 FXML 窗格 (NullPointerException)