See development guidelines https://github.com/DINA-Web/guidelines/blob/master/DINA-Web-Development-Guidelines.md
The goals of using Docker to run DINA modules are:
- Making it easy to create similar environment for development, testing and production, to avoid dependency issues.
- Making it easy to test, e.g. running alternative branches (e.g. with updated database version) with less manual work.
Possible goals in the future, but not at this point might be:
- Deployment of DINA as official, easy-to install Docker images to third parties.
- Making scaling easier.
Estimate on these terms how much work is saved by dockerizing or automating something with Docker.
Modules run by Docker
- Email server (dmail)
- Proxy for HTTPS
- User management
Method A: Single repository
Single repository that contains backend and frontend dockerized. For example, accounts-docker. This is the default setup in DINA-project, due to it's simplicity.
- Simpler to set up
- Version dependencies are easier to handle
- Forces you to use Docker, or tweak the respository for other tools
Method B: Separate repositories
Separate repositories for
- Dockerized module, which pulls from back- and frontend repositories
- Easier for someone to create a separate project (e.g. using Vagrant or Ansible), pull the source code, and not be distracted by the Docker-configuration
- More complicated to set up
- Version dependencies are more difficult to handle