This repo contains a recipe for making a Docker container for Drupal, using Linux, Apache and MySQL. To build, make sure you have Docker installed.
This will try to go in line with Drupal automated-testing.
sudo killall docker
curl get.docker.io | sudo sh -x
git clone https://github.com/ricardoamaro/docker-drupal.git
cd docker-drupal
and then build it:
sudo docker build -t <yourname>/drupal .
this can take a while but should eventually return a command prompt. It's done when it says "Successfully built {hash}"
sudo docker run -d -t -p 80:80 <yourname>/drupal
That's it! Visit http://localhost/ in your webrowser.
Note: you cannot have port 80 already used or the container will not start.
In that case you can start by setting: -p 8080:80
build directly from github is broken at the moment:
sudo docker build -t <yourname>/drupal git://github.com/ricardoamaro/docker-drupal.git
- ROOT MYSQL_PASSWORD will be on /mysql-root-pw.txt
- DRUPAL MYSQL PASSWORD will be on /drupal-db-pw.txt
- Drupal account-name=admin & account-pass=admin
This will create an ID that you can start/stop/commit changes:
# sudo docker ps
ID IMAGE COMMAND CREATED STATUS PORTS
538114c20d36 <yourname>/drupal:latest /bin/bash /start.sh 3 minutes ago Up 6 seconds 80->80
Start/Stop
sudo docker stop 538114c20d36
sudo docker start 538114c20d36
Commit the actual state to the image
sudo docker commit 538114c20d36 <yourname>/drupal
Starting again with the commited changes
sudo docker run -d -t -p 80:80 <yourname>/drupal /start.sh
Shipping the container image elsewhere
sudo docker push <yourname>/drupal
You can find more images using the Docker Index.
ricardoamaro/drupal-lamp
While i am developing i use this to rm all old instances
sudo docker ps -a | awk '{print $1}' | grep -v CONTAINER | xargs -n1 -I {} docker rm {}
- Upstart on Docker is broken due to this issue, and that's one of the reasons the image is puppetized using vagrant.
- Warning: This is still in development and ports shouldn't be open to the outside world.
Feel free to fork and contribute to this code. :)
- Fork the repo
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Created and maintained by Ricardo Amaro (<mail_at_ricardoamaro.com>)
GPL v3