【发布时间】:2019-12-31 01:47:52
【问题描述】:
我正在使用 Node:12 基础映像构建 Docker 映像。由于图像尺寸较小,我正在尝试将其切换为使用 Node:12-alpine。我已经在 Alpine 中安装了 bash 和 shadow,以便能够运行 chmod 命令。
我在使用 RUN 命令RUN chmod +755 之一时遇到了错误。错误信息:chmod: invalid mode '+755'
请注意,这可以使用 Node:12 基础映像,所以我想我只需要在 Alpine linux 中安装另一个包?谢谢!
FROM node:12.8-alpine
# Create working directory
RUN mkdir -p /home/node/app
# Set working directory
WORKDIR /home/node/app
# Install bash and shadow for permissions chmod commands
RUN apk add --no-cache bash && apk add shadow
# Add `/home/node/app/node_modules/.bin` to $PATH
ENV PATH /home/node/app/node_modules/.bin:$PATH
# Copy code
COPY --chown=node . /home/node/app
# Update umask
RUN chmod +755 /home/node/app/entrypoint.sh && \
echo 'umask 002' >> /home/node/.profile && \
echo 'umask 002' >> /home/node/.bashrc && \
npm install
ENTRYPOINT ["./entrypoint.sh"]
CMD [ "npm", "start" ]
【问题讨论】:
-
+755? + 代表什么?我知道数字是什么,但 + 对我来说是个谜
-
+ 表示将此权限添加到文件已有的其他权限中。
-
+与w r g u ..一起使用,但我认为它不适用于数字。检查man -
@ArnaudClaudel 嗯,很高兴知道。实际上我并没有编写脚本的那部分,它确实适用于 node:12 基础映像(只是不在 Alpine 中)。
-
Alpine 图像使用来自
busybox项目的chmod,这可能与您在其他图像上使用的chmod不同。busyboxchmod 非常精简,可能无法处理将+放在数字权限前面的错误语法。