Docker - инструкция WORKDIR

Опубликовано: 2 Марта, 2022

Инструкция 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 для установки рабочего каталога. Мы также увидели, как установить рабочий каталог, используя относительные пути и переменные среды.