harvard-lil / docker-compose-update-action

Github Action to update a docker image from a docker-compose.yml file and push to a repository
MIT License
1 stars 2 forks source link

docker-compose-update-action

Github Action to update docker images from a docker-compose.yml file and push to a repository.

Given a docker-compose.yml file like this:

    web:
        image: harvardlil/capstone:10-efd312bc82881d1da5ef46cebce39b4c
    db:
        image: harvardlil/capstone-db:0.2-d8509b42e874e7d71bdb89edf5e7e01b

And a docker-compose.override.yml like this:

    services:
        web:
            build:
                context: .
                x-bake:
                    tags:
                        - harvardlil/capstone:10-efd312bc82881d1da5ef46cebce39b4c
                x-hash-paths:
                    - foo.txt
        db:
            build:
                context: .
                x-bake:
                    tags:
                        - harvardlil/capstone-db:0.2-d8509b42e874e7d71bdb89edf5e7e01b
                x-hash-paths:
                    - bar.txt

Use this action like this:

  - name: Rebuild docker images if necessary
    uses: harvard-lil/docker-compose-update-action@main

For each service with an x-hash-paths section in docker-compose.override.yml, the action will:

By default the action will load new images to the local docker cache. If you want to push the images to the registry instead, add bake-action: push and registry credentials. The event name must be push for this to work:

  - name: Rebuild docker images if necessary
    uses: harvard-lil/docker-compose-update-action@main
    with:
      registry: docker.io
      registry-user: ${{ secrets.REGISTRY_USER }}
      registry-pass: ${{ secrets.REGISTRY_TOKEN }}
      bake-action: push

Outputs: