Вы можете думать о WORKDIR
как о cd
внутри контейнера (это влияет на команды, которые приходят позже в Dockerfile, например, на команду RUN
). Если вы удалили WORKDIR
в приведенном выше примере, RUN npm install
не будет работать, потому что вы не окажетесь в каталоге /usr/src/app
внутри вашего контейнера.
Я не понимаю, как это будет связано с тем, куда вы помещаете свой Dockerfile (поскольку расположение вашего Dockerfile на хост-машине не имеет ничего общего с pwd внутри контейнера). Вы можете поместить Dockerfile куда угодно в своем проекте. Однако первый аргумент COPY
- это относительный путь, поэтому, если вы переместите свой Dockerfile, вам может потребоваться обновить эти COPY
команды.