Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can dockerfile be put in .dockerignore?

Tags:

The documentation says that yes it can.

https://docs.docker.com/engine/reference/builder/

You can even use the .dockerignore file to exclude the Dockerfile and .dockerignore files. These files are still sent to the daemon because it needs them to do its job. But the ADD and COPY instructions do not copy them to the image.

But when I put dockerfile in the .dockerignore I get

Sending build context to Docker daemon  1.646MB Error response from daemon: Cannot locate specified Dockerfile: Dockerfile 
like image 595
user1753106 Avatar asked Nov 30 '17 18:11

user1753106


1 Answers

Yes, you can; you can even throw the .dockerignore itself in there!

You're likely doing something else incorrect - possibly in the wrong directory?

Directory listing:

➜  ls -la total 16 drwxr-xr-x  4 tj    wheel  128 Nov 30 13:42 . drwxrwxrwt  7 root  wheel  224 Nov 30 13:42 .. -rw-r--r--  1 tj    wheel   26 Nov 30 13:41 .dockerignore -rw-r--r--  1 tj    wheel   28 Nov 30 13:42 Dockerfile 

Content of files:

➜  cat .dockerignore .dockerignore Dockerfile  ➜  test_docker_ignore cat Dockerfile FROM ubuntu:16.04 ADD . . 

Build it once; specifying --no-cache to be verbose:

➜  docker build -t test --no-cache . Sending build context to Docker daemon  3.072kB Step 1/2 : FROM ubuntu:16.04  ---> 20c44cd7596f Step 2/2 : ADD . .  ---> 4d8ded297954 Successfully built 4d8ded297954 Successfully tagged test:latest 

Add something to the Dockerfile and rebuild: The build will use the cache as it ignores the changes made to the Dockerfile

➜  echo "# A Test Comment" >> Dockerfile ➜  docker build -t test . Sending build context to Docker daemon  3.072kB Step 1/2 : FROM ubuntu:16.04  ---> 20c44cd7596f Step 2/2 : ADD . .  ---> Using cache  ---> 4d8ded297954 Successfully built 4d8ded297954 Successfully tagged test:latest 
like image 108
TJ Biddle Avatar answered Oct 13 '22 15:10

TJ Biddle