WORKDIR
- хорошая практика, поскольку вы можете установить каталог в качестве основного каталога, а затем работать с ним с помощью команд COPY, ENTRYPOINT, CMD, поскольку они будут выполнять указание на этот путь.
Докерская документация: https://docs.docker.com/engine/reference/builder/
Инструкция WORKDIR
устанавливает рабочий каталог для любых инструкций RUN, CMD, ENTRYPOINT, COPY и ADD, следующих за ним в Dockerfile. Если WORKDIR не существует, он будет создан, даже если он не используется ни в одной из последующих инструкций Dockerfile.
Инструкция WORKDIR
может использоваться несколько раз в Dockerfile. Если указан относительный путь, он будет относительно пути предыдущей инструкции WORKDIR.
Пример Dockerfile:
FROM node:alpine
WORKDIR '/app'
COPY ./package.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "start"]
Был создан alpine node.js, рабочий каталог - / app, затем все файлы скопированы в / app
Наконец, команда запуска npm запускается в папке / app внутри контейнера.
Вы должны выполнить следующую команду, если у вас есть sh или bash tty:
docker exec -it <container-id> sh
или
docker exec -it <container-id> bash
После этого вы можете выполнить команду ls
, и вы увидите папку WORKDIR.
Я надеюсь, что это может помочь вам