Nayan Vanza Nayan Vanza - 1 month ago 23
Linux Question

lstate error: no such file or directory while building Docker from a custom image with Docker build command

I have create a custom image for lamp stack with following files

apps.conf
Dockerfile
entrypoint.sh
start.sh
supervisord.conf


Dockerfile
was create with ENV, RUN, ADD and CMD command.

Each application installed successfully, but stuck it at ADD command and check the given path which is correct.

ADD /home/ktpl/nayan/MyLamp/supervisord.conf /etc/supervisor/supervisord.conf

ADD /home/ktpl/nayan/MyLamp/apps.conf /etc/supervisor/conf.d/apps.conf

ADD /home/ktpl/nayan/MyLamp/entrypoint.sh /entrypoint.sh

ADD /home/ktpl/nayan/MyLamp/start.sh /start.sh




Process is stuck at Add command.:

lstat home/ktpl/nayan/lamp/supervisord.conf: no such file or directory

Rao Rao
Answer

ADD can be used to copy local files to image while building.

Couple of things:

  • You are building an image using current directory
  • In your case, /home/ktpl/nayan/lamp is the valid directory
  • Not sure if you have a directory /home/ktpl/nayan/MyLamp exists and files present in there.

As per the documentation of docker

The path must be inside the context of the build; you cannot ADD ../something /something, because the first step of a docker build is to send the context directory (and subdirectories) to the docker daemon.

If your files are in the same directory as you build image, then you may use below statements in Dockerfile

ADD ./supervisord.conf /etc/supervisor/supervisord.conf

ADD ./apps.conf /etc/supervisor/conf.d/apps.conf

ADD ./entrypoint.sh /entrypoint.sh

ADD ./start.sh /start.sh

Of course, like it was mentioned in the other answer, COPY can also be used.

Sample Dockerfile contents:

FROM busybox
ADD ./test.txt /test.txt
CMD ls /

You can building image and running it shows file being added in the below image.

enter image description here

If all the files and directories present and still you see this problem, then check .dockerignore has entry for the same.