Sign inSign up

jc21/rpmbuild

By jc21

Updated 14 days ago

Easily build RPMs in controlled environments

Image
Operating systems
0

3.8K

jc21/rpmbuild repository overview

RPM Build Environments

These images allow you to use your existing RPM build folders but build within the Linux environments.

Image Tags

DistroArchExtrasImage
Alma Linux 10amd64Basejc21/rpmbuild:alma10
Alma Linux 10amd64Golangjc21/rpmbuild:alma10-golang
Alma Linux 10amd64Rustjc21/rpmbuild:alma10-rust
Alma Linux 10amd64Haskelljc21/rpmbuild:alma10-haskell
Rocky Linux 10amd64Basejc21/rpmbuild:rocky10
Rocky Linux 10amd64Golangjc21/rpmbuild:rocky10-golang
Rocky Linux 10amd64Rustjc21/rpmbuild:rocky10-rust
Rocky Linux 10amd64Haskelljc21/rpmbuild:rocky10-haskell
Rocky Linux 9amd64Basejc21/rpmbuild:rocky9
Rocky Linux 9amd64Golangjc21/rpmbuild:rocky9-golang
Rocky Linux 9amd64Rustjc21/rpmbuild:rocky9-rust
Rocky Linux 9amd64Haskelljc21/rpmbuild:rocky9-haskell
Rocky Linux 8amd64Basejc21/rpmbuild:rocky8
Rocky Linux 8amd64Golangjc21/rpmbuild:rocky8-golang
Rocky Linux 8amd64Rustjc21/rpmbuild:rocky8-rust
Rocky Linux 8amd64Haskelljc21/rpmbuild:rocky8-haskell

Setup

You'll need to create your standard RPM build directory structure as follows:

rpmbuild
  - BUILD
  - BUILDROOT
  - RPMS
  - SOURCES
  - SPECS
  - SRPMS
  - tmp

Of course put your spec files in SPECS and your source files in SOURCES.

Usage

If you want to build just one spec in particular:

docker run \
  --name rpmbuild-alma10 \
  -v /path/to/your/rpmbuild:/home/rpmbuilder/rpmbuild \
  --rm=true \
  jc21/rpmbuild:alma10 \
  /bin/build-spec /home/rpmbuilder/rpmbuild/SPECS/something.spec

Or if you want to build all specs in your SPECS folder:

docker run \
  --name rpmbuild-alma10 \
  -v /path/to/your/rpmbuild:/home/rpmbuilder/rpmbuild \
  --rm=true \
  jc21/rpmbuild:alma10 \
  /bin/build-all

The build-spec script will go to the trouble of installing any requires that the spec file needs to build.

Built RPMS will show up in the RPMS/SRPMS folders if successful.

Script it!

Here's an example of wrapping that stuff above in a script. Let's call it build.sh:

#!/bin/bash

SPEC=$1
RPMBUILDROOT=/path/to/your/rpmbuild

if [ "$1" == "" ]; then
  echo "Usage: build.sh specfile.spec"
  exit 1;
else
  docker run \
    --name rpmbuild-alma10 \
    -v $RPMBUILDROOT:/home/rpmbuilder/rpmbuild \
    --rm=true \
    jc21/rpmbuild:alma10 \
    /bin/build-spec /home/rpmbuilder/rpmbuild/SPECS/$SPEC

  exit $?
fi

Then to run it:

./build.sh something.spec

Tag summary

Content type

Image

Digest

sha256:cb25177c7

Size

1002.9 MB

Last updated

14 days ago

docker pull jc21/rpmbuild:alma8-rust