composevalidate

command module
v0.0.0-...-2ee3a2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

README

composevalidate

composevalidate checks that all images referenced in a Docker Compose file have images for a given platform and expected architecture.

Using this as a step in a PR workflow can catch issues where something like Renovate might try to update you to a new upstream image that is missing an architecture.

Retrieving the manifests is done using regctl and the docker image for this tool is based on the regctl docker image, which includes authentication helpers for AWS and GCP.

Usage

  1. Populate a Docker Compose yaml file with services that reference images.

    services:
      service-name-does-not-matter:
        image: "rabbitmq:3.4"
    

    The example above references an amd64-only image. It will pass if run with the defaults (--platform linux/amd64, --architecture amd64) but it will fail if you specify --platform linux/arm64 --architecture arm64.

  2. If any registry authentication configuration is required, you'll need to mount it in to the composevalidate docker image.

    The path for a docker config file is /home/appuser/.docker/config.json and the path for a regctl config is /home/appuser/.regctl/config.json.

  3. Run composesync as a container in a CICD workflow.

    docker run -i --rm \
    --volume $HOME/.config/gcloud:/home/appuser/.config/gcloud:ro \
    --volume `pwd`/compose.yaml:/compose.yaml:ro \
    ghcr.io/retailnext/composevalidate \
    --platform linux/arm64 \
    --architecture arm64 \
    /compose.yaml
    

Project Status

We use this internally. It may receive some publicly-visible maintenance, but it is not a priority for us.

⚠ We are likely to make breaking changes without warning.

Contributing

Contributions considered, but be aware that this is mostly just something we needed. It's public because there's no reason anyone else should have to waste an afternoon (or more) building something similar, and we think the approach is good enough that others would benefit from adopting.

This project is licensed under the Apache License, Version 2.0.

Please include a Signed-off-by in all commits, per Developer Certificate of Origin version 1.1.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL