Docker - инструкция WORKDIR
Инструкция WORKDIR используется для установки рабочего каталога для всех последующих инструкций Dockerfile. Некоторые часто используемые инструкции в файле Docker : RUN , ADD , CMD , ENTRYPOINT и COPY. Если WORKDIR не создается вручную, он создается автоматически во время обработки инструкций. При использовании инструкции WORKDIR следует учитывать следующие моменты:
- WORKDIR не создает новые промежуточные слои изображения.
- Он добавляет метаданные в конфигурацию изображения.
- В вашем Dockerfile может быть несколько инструкций WORKDIR.
- Если вы используете относительные пути в качестве рабочего каталога, он будет относиться к предыдущему рабочему каталогу.
- Путь по умолчанию: /
В этой статье мы обсудим, как использовать инструкцию WORKDIR в вашем Dockerfile. Мы также обсудим 2 других способа создания рабочего каталога внутри вашего Dockerfile. Для работы с инструкцией WORKDIR выполните следующие действия:
Шаг 1. Создайте Dockerfile
Вы можете использовать следующий шаблон для создания файла Dockerfile .
ОТ ubuntu: последний WORKDIR / my-work-dir
Шаг 2. Создайте образ Docker
Чтобы создать образ Docker, вы можете использовать команду Docker Build.
sudo docker build -t workdir-demo
Шаг 3. Запустите контейнер Docker
Чтобы запустить контейнер Docker, вы можете использовать команду Docker Run.
sudo docker run -it рабочий каталог-демо
Приведенная выше команда открывает bash для контейнера.
Шаг 4: проверьте рабочий каталог
Вы можете использовать команду печати рабочего каталога (pwd) , чтобы распечатать рабочий каталог.
Теперь. Давайте обсудим способы создания рабочего каталога в Dockerfile . Есть два возможных способа сделать это, и оба они описаны ниже:
1. WORKDIR, указав относительный путь
Давайте посмотрим, как можно указать относительный путь с помощью инструкции WORKDIR.
Первый шаг - создать Dockerfile, как указано ниже:
FROM ubuntu:latest WORKDIR /my-work-dir RUN echo "work directory 1" > file1.txt WORKDIR /my-work-dir-2 RUN echo "work directory 2" > file2.txt
Теперь соберите и запустите контейнер Docker.
sudo docker build -t рабочий каталог-демо. sudo docker run -it workdir-demo bash
Наконец, распечатайте рабочий каталог.
pwd
Первый оператор echo запускается с рабочим каталогом, установленным в папку «my-work-dir». Вот почему, если вы используете команду ls для просмотра содержимого папки, вы найдете внутри «file1.txt». папка «my-work-dir». Вторая инструкция WORKDIR изменяет рабочий каталог на «my-work-dir-2» и, следовательно, файл «file2.txt» находится внутри этой папки.
2. WORKDIR, указав переменные среды.
Второй способ создать рабочий каталог - использовать переменные среды. Чтобы сделать это, выполните следующие действия:
Первый шаг - использовать следующий шаблон Dockerfile, как показано ниже:
ОТ ubuntu: последний ENV DIRPATH / приложение WORKDIR $ DIRPATH
Здесь мы установили переменную среды DIRPATH в каталог / app и установили WORKDIR.
Теперь, после запуска контейнера Docker, вы обнаружите, что каталог установлен как / app .
sudo docker build -t рабочий каталог-демо. sudo docker run -it рабочий каталог-демо pwd
В заключение, в этой статье мы обсудили, как использовать инструкцию WORKDIR в Dockerfile для установки рабочего каталога. Мы также увидели, как установить рабочий каталог, используя относительные пути и переменные среды.