Since Islandora CLAW has moved development to Drupal 8, our Docker images no longer function properly. We recommend using the vagrant build instead. Please follow the Islandora listserv and weekly CLAW Tech Calls for updates about the status of Docker and Ansible with Islandora CLAW.
Please note that even with vagrant, there is not yet a stable release of Islandora CLAW. We welcome your volunteer contributions to help get the project to production.
❗ ❗ ❗
This repository is provided as a convenience for pulling down and building / running all the Docker images that Islandora CLAW provides.
Each image has it's own Git repository, they are included in this repository as sub-modules.
You must run the command git submodule update --init --recursive
after cloning this repository to fetch them.
The Docker images can be found in the images directory.
If you are new to Docker, please read though our overview, to get an idea of what Docker is all about.
- Docker >= 1.10.1
- Docker Compose >= 1.6.0 (optional)
- Docker Machine >= 0.6.0 (optional)
- Vagrant >= 1.8.1 (optional)
There are a lot of ways you can run and manipulate Docker applications. Hence why every dependency is marked as optional, though you must pick one.
See our install guide for more information.
Assumes you have already setup and installed Docker and Docker Composer. If you are running this on your local machine, you may need to change the Drupal container port from 80 to 8000 in docker-compose.yml
.
git clone https://github.com/Islandora-CLAW/claw-docker.git
cd claw-docker
git submodule update --init --recursive
cp example.docker-compose.yml docker-compose.yml
(editdocker-compose.yml
)sudo ./commands/generate-env-files
sudo ./commands/build
sudo docker-compose up
We provide two methods for running Islandora CLAW with Docker.
- Single Container Application
- Multiple Container Application
This includes all the dependencies and tools required to run Islandora in a single container (along with some developer tools).
This approach is not meant for production use, and has many limitations when it comes to scaling Islandora.
It's provided as a way to easily test and develop against Islandora, it's vastly easier to deploy and manipulate than the multiple container application.
Visit the repository to learn more.
This is the standard approach when using Docker. We split out every dependency into it's own container and then link them together at run-time.
This is suitable for production use, and can be made to scale easily. As we can spin up any number of containers and put them behind a load-balancer container or behind caching containers, etc.
Eventually we will add support and examples with Docker Swarm, such that we can run a large number of containers across a large number of servers. With this we could do massive ingests is on short time scales.
Please read out Multiple Container User Guide to learn more.
Also checkout our Development Guide if you plan on doing some development work.
For convenience a number of commands are provided in the commands directory.
Command | Notes |
---|---|
generate-env-files | Generates the required enviroment files to run docker-compose . |
build | Builds all the images and tags them with the current commit and branch. |
pull | Pulls down the latest version of all images. |
cache-clear | Fixes sync issues with docker and vagrant shared folders. (boot2docker only) |
remove-inactive-volumes | Deletes volumes not associated with running or stopped container. |
remove-stopped-containers | Removes stopped containers. |
remove-untagged-images | Removes un-tagged images. |
There are some known kernal issues that mess with the Java based images, If you experience troubles please review the and apply the provided workarounds:
Specifically follow the instructions in this comment:
Question: I get the following message Cannot connect to the Docker daemon. Is the docker daemon running on this host?
.
Answer: Check to see if the Docker VM is running, if not start it, also setup the environment eval $(docker-machine env default)
- UPEI
- discoverygarden inc.
- LYRASIS
- McMaster University
- University of Limerick
- York University
- University of Manitoba
- Simon Fraser University
- PALS
- American Philosophical Society
- common media inc.
If you would like to contribute, please get involved by attending our weekly Tech Call. We love to hear from you!
If you would like to contribute code to the project, you need to be covered by an Islandora Foundation Contributor License Agreement or Corporate Contributor Licencse Agreement. Please see the Contributors pages on Islandora.ca for more information.