I am a complete Docker novice but am having to maintain an existing system. The Dockerfile I am using is as below:
RUN docker-php-ext-install mysql mysqli
RUN apt-get update -y && apt-get install -y sendmail
RUN apt-get update && \
apt-get install -y \
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
configure: error: png.h not found.
The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1
You should add the
libpng-dev package to your
FROM php:5.6-apache RUN docker-php-ext-install mysql mysqli RUN apt-get update -y && apt-get install -y sendmail libpng-dev RUN apt-get update && \ apt-get install -y \ zlib1g-dev RUN docker-php-ext-install mbstring RUN docker-php-ext-install zip RUN docker-php-ext-install gd
Then go to directory with
Dockerfile and run:
docker build -t sitename .
It worked in my case:
Removing intermediate container f03522715567 Successfully built 9d69212196a2
Let me know if you get any errors.
You should see something like this:
REPOSITORY TAG IMAGE ID CREATED SIZE sitename latest 9d69212196a2 19 minutes ago 414 MB <none> <none> b6c69576a359 25 minutes ago 412.3 MB
Just to double check everything:
Please run the
docker build command this way:
docker build -t sitename:1.0 .
:1.0 should not change anything, I added it just to have additional row in
docker images output)
Then start the container:
docker run --name sitename_test -p 80:80 sitename:1.0
It should work just fine.
I assumed that apache is using standard port (80) - maybe you need to adjust that. If you have other services/containers listening on port 80 you can make your container listening on other port:
docker run --name sitename_test -p 8080:80 sitename:1.0
That will redirect the traffic from port 8080 to port 80 "inside" the container.
Normally you run container in the background. To do this add the
-d option to the
docker run command (but for testing purposes you can omit
-d to see output in the console).
Hope that helps.