繁体   English   中英

为非 root 用户创建工作 Docker 映像的问题

[英]Issues with creating working Docker image for non-root user

我想使用将运行为 static http 资产服务的基本映像(非根)创建 docker 映像。 所以基础 Debian 图像已经有 NodeJS,我想使用 NPM package http-server 来服务资产。 我的 Dockerfile 看起来像这样:

FROM mwi_node10_20190321
USER root
RUN useradd -u 5000 node
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app

WORKDIR /home/node/app
RUN npm install --global http-server

USER node
COPY --chown=node:node . .

然后,当我尝试使用以下命令运行 http-server 时:

docker container run -it --user node 46c476f9dac5 http-server

我收到以下错误:

docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:345:启动容器进程导致“exec:”http-server“:在 $PATH 中找不到可执行文件”:未知。

但是,如果我在 root 用户下运行,那么使用 cmd 可以正常工作:

docker container run -it --user node 46c476f9dac5 http-server

所以看起来像是一个以非 root 身份运行但不知道如何解决的权限问题。 有任何想法吗?

好的设法通过添加节点用户的权限来解决它,不确定这是否是最好的方法很乐意接受反馈,这是我使用更新的 Dockerfile 解决它的方法:

FROM mwi_node10_20190321
USER root
RUN useradd -u 5000 node
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
RUN chmod 755 /opt/mdw/node-v10.15.3-linux-x64/

WORKDIR /home/node/app
RUN npm install --global http-server

USER node
COPY ./dist/apps/designer/ /webapplication/
WORKDIR /webapplication/
CMD ["http-server", "-s"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM