dc-ops/README.md
Sebastian Mark db6fd25741 feat: add command line argument to irgnore new git commits
- add new argument `--ignore-git-status` to continue even if there are no new commits
- update `update_git_repo` function to accept new argument and skip git status check if argument is passed
- update README.md with new Parameters section

🤖
2023-12-21 15:54:55 +01:00

1.9 KiB

Docker Compose GitOps (dc-ops)

dc-ops is a simple python script that automates the update and deployment of multiple Docker Compose applications.

How does it work?

It reads a list of git repositories from a YAML configuration file (config.yml), pulls the latest changes for each repo, and runs docker compose up for each specified docker-compose.yml file.

Features

  • Automatically checks for updates in git repositories
  • Supports multiple Docker Compose files per repository
  • Can be configured to skip certain repositories

Requirements

See requirements.txt

Usage

  1. Install the required Python packages: pip install -r requirements.txt
  2. Adapt config.yml.example to your needs and save it as config.yml
  3. Run dc-ops from the shell or from a cron job

Parameters

See dc-ops --help

Configuration Options

  • loglevel: (optional) define loglevel. Defaults to "INFO" if not set.
  • compose-opts: (optional) define additional parameters to docker compose up -d.
  • stacks: an array containing details for each repository. Each element is a dictionary containing the following keys:
    • dir: the directory of the repository on your local machine.
    • compose-files: (optional) array of paths (relative to dir) to docker-compose files. Uses ["docker-compose.yml"] by default if not set.
    • enabled: (optional) false if this repository should be skipped. Defaults to true if not set.
    • pre: (optional) a command to be run before docker-compose up, executed in dir.
    • post: (optional) a command to be run after docker-compose up, executed in dir.

Detailed process

For each enabled stack in the config file, the following process will be executed:

  1. Checking directory existence
  2. Fetching latest changes from remote repository
  3. If there is a new commit, it will pull the changes
  4. Running Docker Compose with the defined or default compose-file(s)