gpt4 book ai didi

docker - Dockerfile 上的 WORKDIR 有什么意义?

转载 作者:IT老高 更新时间:2023-10-28 12:35:23 31 4
gpt4 key购买 nike

我正在学习 Docker。很多次我看到 DockerfileWORKDIR 命令:

FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD [ “npm”, “start” ]

我不能只省略 WORKDIRCopy 并且只将我的 Dockerfile 放在项目的根目录中吗?使用这种方法有什么缺点?

最佳答案

根据documentation :

The WORKDIR instruction sets the working directory for any RUN, CMD,ENTRYPOINT, COPY and ADD instructions that follow it in theDockerfile. If the WORKDIR doesn’t exist, it will be created even if it’s not used in any subsequent Dockerfile instruction.

另外,在 Docker best practices它建议您使用它:

... you should use WORKDIR instead of proliferating instructions likeRUN cd … && do-something, which are hard to read, troubleshoot, andmaintain.

我建议保留它。

我认为您可以将 Dockerfile 重构为:

FROM node:latest
WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . ./
EXPOSE 3000
CMD [ "npm", "start" ]

关于docker - Dockerfile 上的 WORKDIR 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51066146/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com