Trong Dockerfile, WORKDIR là một chỉ thị được sử dụng để thiết lập thư mục làm việc (working directory) cho các câu lệnh tiếp theo trong Dockerfile và các tiến trình bên trong container Docker khi chạy.

Cú pháp của WORKDIR trong Dockerfile như sau:

WORKDIR <đường_dẫn>

<đường_dẫn> có thể là đường dẫn tuyệt đối hoặc đường dẫn tương đối đến thư mục mong muốn. Chỉ thị này có thể xuất hiện nhiều lần trong Dockerfile, và thư mục làm việc sẽ được thay đổi cho các câu lệnh sau đó.

Khi một câu lệnh được thực thi trong Dockerfile, đường dẫn của WORKDIR sẽ được sử dụng làm thư mục hiện tại để tìm kiếm các tệp tin và thư mục. Nó cũng ảnh hưởng đến việc mount các thư mục vào container khi chạy bằng cách sử dụng các tham số -v hoặc –mount của lệnh docker run.

Việc sử dụng WORKDIR trong Dockerfile giúp làm cho quá trình xây dựng image và chạy container dễ dàng hơn, bằng cách giảm thiểu việc phải thực hiện đường dẫn đầy đủ cho các lệnh và tệp tin trong Dockerfile và các lệnh docker run tương ứng.

Các bước

  • Dockerfile với hướng dẫn WORKDIR
  • WORKDIR với đường dẫn tương đối
  • WORKDIR với đường dẫn tuyệt đối
  • WORKDIR với các biến môi trường là đường dẫn

Dockerfile với WORKDIR

Dockerfile

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
WORKDIR /opt

Build Docker image

$ docker build -t workdir:v1 .

Kiểm tra WORKDIR hiện tại bằng cách chạy container

$ docker run -it workdir:v1 pwd

WORKDIR với đường dẫn tương đối

Dockerfile

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
WORKDIR /opt
RUN echo "Welcome to Docker Labs" > opt.txt
WORKDIR folder1
RUN echo "Welcome to Docker Labs" > folder1.txt
WORKDIR folder2
RUN echo "Welcome to Docker Labs" > folder2.txt

Build Docker image

$ docker build -t workdir:v2 .

Kiểm tra WORKDIR hiện tại bằng cách chạy container

$ docker run -it workdir:v2 pwd

WORKDIR với đường dẫn tuyệt đối

Dockerfile

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
WORKDIR /opt/folder1
RUN echo "Welcome to Docker Labs" > opt.txt
WORKDIR /var/tmp/

Build Docker image

$ docker build -t workdir:v3 .

Kiểm tra WORKDIR hiện tại bằng cách chạy container

$ docker run -it workdir:v3 pwd

WORKDIR với các biến môi trường là đường dẫn

Dockerfile

FROM alpine:3.9.3
LABEL maintainer="hocdevops"
ENV DIRPATH /myfolder
WORKDIR $DIRPATH

Build Docker image

$ docker build -t workdir:v4 .

Kiểm tra WORKDIR hiện tại bằng cách chạy container

$ docker run -it workdir:v4 pwd
5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments