Startet ein python script aus einem Git Repo, kann per webhook aktualiesert werden.
Go to file
null 63e359b87d install pip req with txt 2024-02-19 07:35:57 +01:00
Dockerfile install pip req with txt 2024-02-19 07:35:57 +01:00
README.md README.md aktualisiert 2024-02-05 11:21:31 +00:00
entrypoint.sh install pip req with txt 2024-02-19 07:35:57 +01:00
githook.py install pip req with txt 2024-02-19 07:35:57 +01:00
supervisord.conf add files to create Docker image 2024-02-05 10:40:37 +01:00

README.md

Python Image for Continuous Delivery

This project involves creating a Docker image that automates continuous delivery by pulling code from a Git repository's master branch and running a Python script from that branch. Additionally, it provides a Git hook route where a Githook can post notifications about changes on the master branch. The system stops the Python script, pulls the latest changes, and then restarts the script.

Use Cases

The primary use case is to simplify hosting and updating a webserver. Development can take place on a development branch, and when everything is working fine locally, merging changes into the master branch will trigger an automatic server update.

Implementation

To achieve this, an entry script is used to clone the specified Git repository and start two scripts. One is a Flask web server that listens for POST requests to trigger updates, and the other is a Python script from the Git repository. Both scripts are managed by Supervisord.

Entry Script (entryscript.sh)

The entry script performs the following steps:

  1. Clones the specified Git repository.
  2. Starts Supervisord to manage the two scripts.

Supervisord Configuration (supervisord.conf)

The Supervisord configuration sets up the management of the two scripts:

  • /home/githook/githook.py: A script for handling Git hooks.
  • /home/app/app.py: The main Python script from the Git repository.

Githook Configuration (githook.py)

The Githook script listens on port 5000 for incoming Git hook notifications.

How to Build

To build the Docker image, use the following command:

docker build -t [your_image_name] .

How to Run

To run the Docker container and initiate the continuous delivery process, use the following command:

docker run -it --rm -p 5000:5000 -e GIT_REPO=http://some-repo.url/path/to/repo [your_image_name]:latest

Logging

If necessary, Supervisord can log output to /var/log. You can mount a volume to access these log files if needed.

Parameters

The following parameters are relevant to the Docker image and environment:

  • /app.py: The starting script in the Git repository.
  • GIT_REPO: A Docker environment variable specifying the Git repository URL.
  • 5000: The port used to listen for Githook POST requests.
  • /var/log/: The path to log files.