This repository hosts projects that I've been using as exercises in my Docker training courses. Feel free to use them under the GPLv3 license.
Each directory includes a problem description (README.md
), a possible solution for it (sol
folder) and optionally source files as part of the problem description (src
folder).
The goal of these projects is to look for and find a simple and feasible solution for the proposed problem. Therefore, features like volumes and container linking are only used if needed or asked for.
If you wish to contribute with your own projects (which I greatly encourage), please follow these guidelines in order to keep some coherence in this repository:
- Create a directory and name it with the following number after the last one currently present in the repo.
- Include a README.md file explaining the problem to be solved and the deliverables expected.
- Add any source files needed.
- Add the files that make up a feasible solution.
- Add a short description of the project to the list below, adding your name and contact email or URL in parenthesis.
Please be warned that, in order to not distract the student from solving the specific proposed problem, all the passswords and credentials are included in clear text.
This SHOULD NEVER be done in production and/or sensitive environment, where a credentials management solution should be used, like Docker Secrets, Hashicorp's Vault, Keywhiz, Ansible Vault, etc.
- Fix the build of an image of a complete Wordpress installation.
- Deploy Wordpress and MySQL in two containers.
- Orchestrate project 02 with Docker Compose.
- Deploy a development/testing environment for Magento 2.
- Deploy a Nginx-based reverse proxy in front of two webservers with different PHP versions.
- Deploy a monitoring container that runs 'atop' in the host namespace.
- Deploy an Apache webserver with PHP7 support.
- Build the image of a Flask app to be run in a development environment.
- Clone and deploy a CRUD app, based on Flask and Vue.js, with Docker Compose in production.
- Launch automatic tests of endpoints against the previous Flask app.
- Design a multi-stage image that builds and deploys a simple Golang app.
GPLv3