我正在学习Docker。很多次我都看到Dockerfile有WORKDIR命令:
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” ]
我不能忽略WORKDIR和Copy,只是有我的Dockerfile在我的项目的根?使用这种方法的缺点是什么?
在应用WORKDIR之前。在这里,WORKDIR被放在了错误的位置,没有被明智地使用。
FROM microsoft/aspnetcore:2
COPY --from=build-env /publish /publish
WORKDIR /publish
ENTRYPOINT ["dotnet", "/publish/api.dll"]
我们修正了上面的代码,将WORKDIR放在正确的位置,并通过删除/Publish优化了下面的语句
FROM microsoft/aspnetcore:2
WORKDIR /publish
COPY --from=build-env /publish .
ENTRYPOINT ["dotnet", "api.dll"]
因此,它就像一张cd,为接下来的语句设定基调。