【发布时间】:2021-04-17 00:14:46
【问题描述】:
我在 typescript 中有一个 dockerized 项目,当我在 Dockerfile 中添加用户时,docker 容器失败并出现权限被拒绝错误。
我的dockerfile是这样的:
FROM node:14.5.0-alpine3.12
ADD . /src
WORKDIR /src
RUN npm install -g typescript
COPY package*.json ./
RUN npm install && \
adduser -u ${USER_ID} --gecos '' --disabled-password --no-create-home user
RUN chown -R user /src
USER user
COPY . .
EXPOSE 8080
# Run node server
CMD npm run start
我的package.json 文件中的start 脚本具有以下值:rimraf ./dist && mkdir ./dist && tsc && node dist/index.js。
因此,当我构建并运行容器时,它无法删除 dist 文件夹,并且出现以下错误:
[Error: EACCES: permission denied, rmdir 'dist/Util'] {
errno: -13,
code: 'EACCES',
syscall: 'rmdir',
path: 'dist/Util'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! test-project@1.0.0 build: `rimraf ./dist && mkdir ./dist && tsc`
npm ERR! Exit status 1
我尝试在我的 Dockerfile 中添加 RUN chmod 777 /src/dist,但结果相同。
如何让用户授予写入权限?
【问题讨论】:
标签: node.js typescript docker npm dockerfile