Name : builds.sr.ht-images
| |
Version : 0.36.4
| Vendor : obs://build_opensuse_org/home:jfita
|
Release : lp150.3.1
| Date : 2019-01-26 10:31:50
|
Group : Productivity/Networking/Web/Servers
| Source RPM : builds.sr.ht-0.36.4-lp150.3.1.src.rpm
|
Size : 0.05 MB
| |
Packager : (none)
| |
Summary : Stock build images for builds.sr.ht runners
|
Description :
Stock build images for builds.sr.ht runners.
On the runner, install the builds.sr.ht-images package as well as docker. Build the docker image like so:
$ cd /var/lib/images $ docker build -t qemu -f qemu/Dockerfile .
This will build a docker image named qemu which contains a statically linked build of qemu and nothing else.
Bootstrapping our images ------------------------
A genimg script is provided for each image which can be run from a working image of that guest to produce a new image. You need to manually prepare a working guest of each image type (that is, to build the Arch Linux image you need a working Arch Linux installation to bootstrap from). Then you can run the provided genimg to produce the disk image. A build.yml file is also provided for each image to build itself on your build infrastructure once you have it set up. It\'s recommended that you set up cron jobs to build fresh images frequently.
Image-specific notes ~~~~~~~~~~~~~~~~~~~~
NixOS can be bootstrapped from any distribution. The provided build.yml does it from Alpine, but it can be easily switched to eg. Archlinux just by changing the host image and adjusting the packages.
Creating new images -------------------
If you require additional images, study the control script to understand how the top-level boot process works. You should then prepare a disk image for your new system (name it root.img.qcow2) and write a functions file. The only required function is boot, which should call _boot with any additional arguments you want to pass to qemu. If your image will boot up with no additional qemu arguments, this function will likely just call _boot. You can optionally provide a number of other functions in your functions file to enable various features:
* To enable installing packages specified in the build manifest, write an install function with the following usage: install [ssh port] [packages...] * To enable adding third-party package repositories, write an add_repository function: add_repository [ssh port] [name] [source]. The source is usually vendor-specific, you can make this any format you want to encode repo URLs, package signing keys, etc.
In order to run builds, we require the following:
* The disk should be able to boot itself up, make sure to install a bootloader and set up partitions however you like. * Networking configured with IPv4 address 10.0.2.15/25 and gateway 10.0.2.2. Don\'t forget to configure DNS, too. * SSH listening on port 22 (the standard port) with passwordless login enabled * A user named build to log into SSH with, preferrably with uid 1000 * Bash (temporary - we\'ll make this more generic at some point)
Not strictly necessary, but recommended:
* Set the hostname to build * Configure NTP and set the timezone to UTC * Add the build user to the sudoers file with NOPASSWD: ALL * In your functions file, set poweroff_cmd to a command we can SSH into the box and use to shut off the machine. If you don\'t, we\'ll just kill the qemu process. * It is also recommended to write a sanity_check function which takes no arguments, but boots up the image and runs any tests necessary to verify everything is working and return a nonzero status code if not.
You will likely find it useful to read the scripts for existing build images as a reference. Once you have a new image, email the scripts to ~sircmpwn/sr.ht-devAATTlists.sr.ht so we can integrate them upstream!
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/home:/jfita:/sr.ht/openSUSE_Leap_15.0/noarch |
Hmm ... It's impossible ;-) This RPM doesn't exist on any FTP server
Provides :
builds.sr.ht-images
Requires :