Section 6: Lab: Docker Compose
- What Docker Compose is, and the structure of a compose.yaml file
- The docker compose up, down, ps, logs and exec commands
- Define services, ports, volumes, networks and a .env file
- depends_on with a healthcheck so the app waits for the database
- Compose Watch for syncing code automatically during development
Section 7: Workshop: A LAMP Stack and WordPress
- A Compose file for PHP with Apache and MySQL
- Connect PHP to MySQL and test a CRUD API
- Run WordPress with its database using Compose
- Back up and restore data from volumes
- Configure Apache, PHP and MySQL for production
Section 8: Workshop: Full Stack Node.js, MongoDB, React and Nginx
- A Dockerfile for a Node.js API and environment variables for MongoDB
- Connect Node.js to MongoDB and inspect the data in the container
- A React frontend with Vite that calls the API
- Solve CORS issues or use Nginx as a reverse proxy
- Build React with a multi-stage build and serve it with Nginx in production
Section 9: Workshop: Laravel on Docker
- The service layout: a Laravel app (PHP-FPM), Nginx and MySQL
- A Dockerfile for Laravel 13 with Composer
- Run Artisan and migrations, and test a CRUD API
- Separate settings for development and production
Section 10: Lab: Publishing Images to Docker Hub
- Docker registries and Docker Hub basics
- Tag and push images to Docker Hub, then pull them on another machine
- Build images for several architectures (amd64 and arm64) with Buildx
- Build and push automatically from GitHub with GitHub Actions
- Basic image vulnerability checks, and next steps towards Kubernetes