Dockerized app
The Python Flask application runs inside a Docker container built by CI and pulled by the production server.
This application is deployed through a real CI/CD pipeline: GitHub Actions builds a Docker image, publishes it to GHCR, connects to a Linux server over SSH, pulls the new image, restarts Docker Compose and verifies health checks.
The Python Flask application runs inside a Docker container built by CI and pulled by the production server.
Merging into main triggers build, push to registry and remote deployment
to the server through GitHub Actions.
Nginx routes traffic to the application service and can distribute requests across scaled containers.
Images are stored in GitHub Container Registry with tags for deployment and repeatable releases.
CI checks compose configuration, builds the image, starts services and verifies health/API responses before deployment.
Multiple app containers can run behind Nginx. Refreshing requests can land on different container hostnames.