Product Docs
-
- Overview
- FAQs
- Verifying Images
- How to Use
- Going Distroless
-
-
-
-
-
- Minimal Runtime Images
- Using the Static Base Image
- Software Versions
- Chainguard Security Advisories & Diff API
- Image Digests
- Up-to-date Images with Digestabot
- Migrating Go Applications to Chainguard
- Reproducible Dockerfiles with Frizbee and Digestabot
- Why our images have Low-to-No CVEs
- Reproducibility and Chainguard Images
- Debugging Distroless Containers
- Debugging with Kubectl and CDebug
- Migrate Node.js Applications to Chainguard
- Migrate Java Applications to Chainguard
- How Images are Tested
- Product Release Lifecycle
- Debugging
-
-
-
-
- chainctl
- chainctl auth
- chainctl auth configure-docker
- chainctl auth login
- chainctl auth logout
- chainctl auth status
- chainctl auth token
- chainctl config
- chainctl config edit
- chainctl config reset
- chainctl config save
- chainctl config set
- chainctl config unset
- chainctl config validate
- chainctl config view
- chainctl events
- chainctl events subscriptions
- chainctl events subscriptions create
- chainctl events subscriptions delete
- chainctl events subscriptions list
- chainctl iam
- chainctl iam account-associations
- chainctl iam account-associations check
- chainctl iam account-associations check aws
- chainctl iam account-associations check gcp
- chainctl iam account-associations describe
- chainctl iam account-associations set
- chainctl iam account-associations set aws
- chainctl iam account-associations set gcp
- chainctl iam account-associations unset
- chainctl iam account-associations unset aws
- chainctl iam account-associations unset gcp
- chainctl iam folders
- chainctl iam folders delete
- chainctl iam folders describe
- chainctl iam folders list
- chainctl iam folders update
- chainctl iam identities
- chainctl iam identities create
- chainctl iam identities create github
- chainctl iam identities create gitlab
- chainctl iam identities delete
- chainctl iam identities describe
- chainctl iam identities list
- chainctl iam identities update
- chainctl iam identity-providers
- chainctl iam identity-providers create
- chainctl iam identity-providers delete
- chainctl iam identity-providers list
- chainctl iam identity-providers update
- chainctl iam invites
- chainctl iam invites create
- chainctl iam invites delete
- chainctl iam invites list
- chainctl iam organizations
- chainctl iam organizations delete
- chainctl iam organizations describe
- chainctl iam organizations list
- chainctl iam role-bindings
- chainctl iam role-bindings create
- chainctl iam role-bindings delete
- chainctl iam role-bindings list
- chainctl iam role-bindings update
- chainctl iam roles
- chainctl iam roles capabilities
- chainctl iam roles capabilities list
- chainctl iam roles create
- chainctl iam roles delete
- chainctl iam roles list
- chainctl iam roles update
- chainctl images
- chainctl images diff
- chainctl images list
- chainctl images repos
- chainctl images repos list
- chainctl update
- chainctl version
Open Source
Education
Troubleshooting melange Builds
Debug Options
To include debug-level information on melange builds, edit your melange.yaml
file and include set -x
in your pipeline. You can add this flag at any point of your pipeline commands to further debug a specific section of your build.
...
pipeline:
- name: Build Minicli application
runs: |
set -x
APP_HOME="${{targets.destdir}}/usr/share/hello-minicli"
...
Common Errors
When melange is unable to finish a build successfully, you will get an error similar to this:
The build could not be completed due to an error at some point of your pipeline. Enable debug by including set -x
at the beginning of your build pipeline so that you can nail down where the issue occurs.
Missing QEMU user-space emulation packages
Linux users using the Docker melange image may get errors when building packages for other architectures than x86
and x86_64
. This won’t happen for Docker Desktop users, since the additional architectures are automatically enabled upon installation.
To enable additional architectures, you’ll need to enable them within your kernel with the following command:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
An alternate approach to achieve the same result is to run the following command:
docker run --privileged --rm tonistiigi/binfmt --install all
Missing build-time dependencies
You may get errors from missing build-time dependences such as busybox
. In this case you may get “No such file or directory” errors when enabling debug with set -x
. To fix this, you’ll need to locate which package has the commands that your build needs, and add it to the list of your build-time dependencies.
Further Resources
For additional guidance, please refer to the melange repository on GitHub, where you can find more examples or open an issue in case of problems.
Last updated: 2022-08-10 11:07