The gnu-on-alpine project provides a lightweight Docker container for shell scripting using GNU tools on Alpine Linux. It aims to keep the image size small while supporting the use of tools like bash, gawk, coreutils, and findutils. The base image used is Alpine Linux, and the gnu-on-alpine image adds the necessary GNU tools on top of it.
The project offers multiplatform support with platforms available for different architectures such as 386, amd64, armv6, armv7, arm64, ppc64le, and s390x.
Source code repository and builds are maintained on GitHub. The images are built on GitHub and pushed to Docker Hub and the GitHub Container Registry using GitHub Actions.
The Docker image follows a versioning scheme based on Semantic Versioning. Tags include the latest version and specific versions indicating the SemVer of the Alpine image used as the base. For example, tags like MAJOR.MINOR.PATCH (e.g., 3.13.5) represent specific releases, while MAJOR.MINOR (e.g., 3.13) and MAJOR (e.g., 3) correspond to the most recent patch levels of the Alpine image.
To use the pre-built image, you can pull it from Docker Hub or the GitHub Container Registry using the provided commands. It can also be used as a base image in a Dockerfile by specifying the desired version. The licensing information states that the source code is licensed under the MIT License, but the resulting image contains software covered by various licenses, including the licenses of Alpine components and the GNU tools added.
It's important to comply with the licenses of all software contained within the image if you distribute an image containing your own software based on gnu-on-alpine. This may have implications for the licensing of your software, potentially requiring it to be distributed under the GPL 3.0 or later. To avoid this constraint, it is suggested to distribute a Dockerfile instead of a pre-built image for your software.