Markus Pesch
246342ea67
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
installation-scripts | ||
.drone.yml | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.markdownlint.yaml | ||
Dockerfile | ||
entrypoint.sh | ||
LICENSE | ||
Makefile | ||
manifest.tmpl | ||
README.md | ||
renovate.json |
build-image
This project contains all sources to build the container image
docker.io/volkerraschek/build-image
. The primary goal of the image is only to
provide an environment to compile source code for go
or rust
and package
compiled binaries as PKG for Arch Linux or as RPM for RHEL based distributions.
Supported environment variables
gnupg
GNUPG_KEY
Import private gpg key via GPG_KEY
. The private key must be escaped to import
the key inside the container image correctly. For example:
GPG_FPR=YOUR_GPG_FINGERPRINT
GPG_KEY=$(gpg --armor --export-secret-keys ${GPG_FPR} | cat -e | sed -e 's/\$/\\n/g' -e 's/^[ \t]*//g')
makepkg
The makepkg.conf
configuration is composed from the environment variables with
the prefix MAKEPKG_
. Below are some examples:
MAKEPKG_PACKAGER="Hugo McKinnock <hugo.mckinnock@example.local>"
MAKEPKG_GPGKEY="0123456789"
MAKEPKG_PKGEXT=.pkg.tar.zst"
ssh
SSH_KEY
Import private ssh key via SSH_KEY
. The private key must be escaped to import
the key inside the container image correctly. For example:
SSH_KEY=$(cat -e ${HOME}/.ssh/id_rsa | sed -e 's/\$/\\n/g')
Usage
golang
To use this image for building golang applications execute this in your root folder of your go project.
$ docker run \
--rm \
--volume ${PWD}:/workspace \
volkerraschek/build-image:latest \
go build
makepkg
With the following example will be an package be build for Arch Linux. Execute
the commond in the root directory of the project, where the PKGBUILD
file is
located.
$ docker run \
--env MAKEPKG_PACKAGER="Max Mustermann <max.mustermann@example.com" \
--rm \
--volume ${PWD}:/workspace \
volkerraschek/build-image:latest \
makepkg
rust
If you want to compile instead go rust sourcecode, than you can do it similar to the golang example.
$ docker run \
--rm \
--volume ${PWD}:/workspace \
volkerraschek/build-image:latest \
cargo build --release