FROM node:14.16.0-alpine3.13
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package*.json ./
RUN npm install
COPY . .
ENV APP_URL=http://api.myapp.com
EXPOSE 3000
CMD ["npm", "start"]
这是我的 Docker 文件。我正在尝试将一个示例 React 应用程序 docker 化。我添加了用户到组中,并在后续命令中使用该用户,您可以在此代码的第二行看到。我相信默认情况下,只有 root 用户才能访问这些文件并进行更改,为了对这些文件进行更改,不应该使用 root 用户。因此我在这里创建了
app
用户。但是在运行
docker build -t react-app.
后,我遇到了以下错误 -
这里我做错了什么?有什么建议吗?在添加
Run ls -la
和Run whoami
之后 -
![输入图像描述](https://istack.dev59.com/SRlhQ.webp)
COPY package*.json ./
后添加RUN ls -la
和RUN whoami
,然后让我们知道输出结果是什么? - Gerard SethoUSER app
,同时指定运行时的CMD
。 这将允许安装程序运行,但防止应用程序修改自己的源代码或资产。 - David MazeCOPY package.json ./
吗?因为package-lock.json
可能会引起问题。 - Philippenpm start
启动我的应用程序时,permissions denied
错误仍会被抛出,为此我找到了一个解决方案,我们不应该使用root用户。而且这也是不推荐的。 - anjali ahlawatdocker run react-app
时,它会给出权限被拒绝的错误。 - anjali ahlawat