It’s a fact that Docker and Vagrant are today mature enough to be taken in consideration.
I don’t want to start here a discussion about which one is better… both have their lights and shadows, but I like docker I started a few experiments to see how useful is for DEVELOPMENT but also for PRODUCTION environments.
When I started I noticed two existing projects, although a little bit outdated, help me to understand how to start:
If the developers are here, they are very welcome to comment, contribute or criticize. Thanks a lot for your work.
First one (@arturluizbr) is much cleaner and build the application from github, but it’s also a little bit constrained.
Second one (infrascielo) is much complex but suited for an specific context and get the application from the official tarball.
Git gives us much more control and fits very well with docker-hub automation tools so I decided to start my work from the first one. I also took a few ideas from infrascielo image and I extended them all with docker-compose.
Here you have the preliminary results: https://hub.docker.com/r/marcbria/docker4ojs/
Right now I’m focused in discover if this is really suitable for a production environment, with hundreds of journals, with a preset or testing DB, with a single nginx, backup/recover/snapshots, centralized logs, monitor, mojo…
But main question now is this:
https://stackoverflow.com/questions/41883605/multiple-docker-containers-for-mysql-or-one-instance-with-multiple-databases. Multiple mysql (or mariadbs) are winning.
I’m also worried about how to offer a “cute” frontend to all this stuff. My initial suggest https://portainer.io (you can run it as a container and won’t brake nothing in your host). So, a portainer OJS template is also in the toDo list.
I forget to mention this project is inspired by docker4drupal. Great ideas shown there still need to be reviewed and adapted. Any help and comment is welcome.