Setting the working directory in Docker
If present, the working directory of a process in Compute is a directory in a linked hierarchical file system that is dynamic for each process. In Docker, we can set our working directory by editing the Dockerfile and adding the key WORKDIR.
This article will discuss changing our current and default working directory in Docker.
WORKDIR in Docker
The WORKDIR directive in a Dockerfile determines the working directory for any RUN, CMD, ENTRYPOINT, COPY, and ADD instructions that follow it. We can use the WORKDIR directive multiple times in a Dockerfile.
If we provide a relative path, it will be relative to the path of the previous WORKDIR directive.
For example:
WORKDIR /usr
WORKDIR src/serv
RUN sampleserv
The output of the final sampleserv command in this Dockerfile will be /usr/src/serv.
The WORKDIR instruction can resolve environment variables previously specified using the ENV instruction. However, we can only use environment variables that are explicitly set in the Dockerfile.
ENV DIRPATH=/usr
WORKDIR $DIRPATH/$DIRNAME
RUN sampleserv
The output of the final sampleserv command in this Dockerfile will be /usr/$DIRNAME.
The default working directory is the root directory or /
if not specified. In fact, if you are not creating a Dockerfile from scratch ( FROM scratch
), the base image you are using may already have WORKDIR configured.
Therefore, we recommend setting your WORKDIR explicitly to prevent unexpected activity in unknown folders.
For clarity and reliability, we should always use an absolute path for your WORKDIR . Also, we should use WORKDIR instead of adding RUN cd … && sample-code
directives like this that are difficult to read, troubleshoot, and maintain.
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Related Articles
How to get IP address in CentOS
Publish Date:2025/03/23 Views:108 Category:OPERATING SYSTEM
-
This short article is a brief introduction to CentOS followed by a brief discussion on how we can get the server IP address in CentOS using the Command Line Interface (CLI). This article will discuss some of the commands and their usage for
Updating YUM in Linux
Publish Date:2025/03/23 Views:148 Category:OPERATING SYSTEM
-
This article will teach us how to update YUM in Linux and how to install, update, remove, find and manage packages on a Linux system. We have also seen the difference yum update between and in Linux yum upgrade . yum update command in Linux
Installing Deb Files in Linux
Publish Date:2025/03/23 Views:93 Category:OPERATING SYSTEM
-
In this Linux article, we will learn how to install .deb (Debian Package) files on Linux systems. We will also see how to remove .deb files after installation. More importantly, we will learn different ways to install .deb files on Linux sy
lsof Command in Linux
Publish Date:2025/03/23 Views:100 Category:OPERATING SYSTEM
-
In this Linux article, we will learn about lsof command in Linux operating system. We will see how to use this command for different purposes in Linux. We use lsof the lsof command to verify the ports in use on the Linux operating system. U
How to solve the problem of not being able to execute binary files in Linux
Publish Date:2025/03/23 Views:108 Category:OPERATING SYSTEM
-
In this article, we will learn how to execute binary files in Linux. We will also learn how to troubleshoot the error if Linux fails to execute the binary file. Usually, this error occurs when we run shell scripts in Linux. This article wil
Error in Linux Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
Publish Date:2025/03/23 Views:178 Category:OPERATING SYSTEM
-
In this article, we will learn how to fix the error mesg: ttyname failed: Inappropriate ioctl for device in Linux . We will discuss some of the causes of this error and show you how to fix it. Let's start with what causes this error in Linu
ps aux command in Linux
Publish Date:2025/03/23 Views:57 Category:OPERATING SYSTEM
-
If you are using Linux and are looking for a tool that can monitor all the processes running on your system, then you should use the command ps aux. This command will show you an overview of all running processes. It is very useful for trou
NTP in Linux
Publish Date:2025/03/23 Views:58 Category:OPERATING SYSTEM
-
NTP is a core protocol used by most IT infrastructures. Its purpose is to synchronize date and time information. However, it is very important to configure NTP for your servers, clients, and other network devices. NTP uses a UDP port number
Creating a Progress Bar in Bash
Publish Date:2025/03/23 Views:94 Category:OPERATING SYSTEM
-
A progress bar is a visual indicator that shows the progress of a task, such as a long-running script or command. It can be used to provide feedback to the user about the status of a task and can also help estimate the time remaining before