问题:Docker WORKDIR - 在我的机器或容器上?

Dockerfile 中的WORKDIR关键字指的是什么上下文?是在我正在生产的容器中还是在容器中运行docker build的上下文中?

我发现自己经常将RUN cd && ...放在我的 docker 文件中,并希望有另一种方式,我觉得我错过了一些东西。

解答

它在容器内。

取自 Dockerfile 参考站点https://docs.docker.com/engine/reference/builder/#workdir

WORKDIR 指令为 Dockerfile 中任何 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令设置工作目录。如果 WORKDIR 不存在,即使它没有在任何后续 Dockerfile 指令中使用,它也会被创建。

因此,您可以执行以下操作,而不是添加RUN cd && ...:

WORKDIR /path/to/dir
RUN command
Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐