I'm trying to move my files into htdocs folder of an apache image. Her's what my dockerfile looks like:
FROM httpd:2.4
MAINTAINER Ankit
COPY ./public-html/ /usr/local/apache2/htdocs/
But the COPY command is not copying the files into the container. Here's the output - index.html is there by default, what I'm trying to copy is public-html folder:
root@8453b6ffa6fd:/usr/local/apache2/htdocs# ls
index.html
Is there something I'm missing?
UPDATE: The public-html folder is not getting copied but the file index.html is being copied there, what is the reason for such behaviour?
UPDATE2: Here's my latest dockerfile, command to build and run container.
Dockerfile:
FROM httpd:2.4
MAINTAINER Ankit
COPY public-html/ /usr/local/apache2/htdocs/public-html/
docker build -f Dockerfile -t apache .
docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practi
ce/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache
and when i check the content using exec command:
root@b54e53a231b7:/usr/local/apache2/htdocs# ls -a
. .. index.html sample.html try
If you are trying to copy the directory public-html
into the directory /usr/local/apache2/htdocs
to have an .../htdocs/public-html/
directory, then use the following:
COPY public-html/ /usr/local/apache2/htdocs/public-html/
By default, copying a directory will copy the contents of that directory, so you need to name it in the target for the directory to appear.
Edit: Your run command contains a volume that will replace the image contents of this directory:
docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practice/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache
If you want to see what's inside the image, do not use the volume:
docker run -d --name apws -p 80:80 apache
If instead you want to use the volume, then modify the contents of /Users/ankitsahu/workspace/docker_practice/public-html on your docker host.