forked from dbhi/qus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_images.Rmd
43 lines (27 loc) · 3.04 KB
/
_images.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Provided docker images
When QEMU is installed from distribution package managers, it is normally set up along with `binfmt_misc`. Nonetheless, in the context of this project we want to configure it with custom options, instead of relying on the defaults. A script provided by QEMU, [`qemu-binfmt-conf.sh`](https://raw.githubusercontent.com/qemu/qemu/master/scripts/qemu-binfmt-conf.sh), can be used to do so. Among other options, the flag that tells `binfmt` to hold interpreters in memory is supported in `qemu-binfmt-conf.sh` as `-p`.
This project uses a modified version of `qemu-binfmt-conf.sh`^[See [umarcor/qemu: series-qemu-binfmt-conf/scripts/qemu-binfmt-conf.sh](https://github.com/umarcor/qemu/blob/series-qemu-binfmt-conf/scripts/qemu-binfmt-conf.sh).], which includes the following enhancements:
- Optionally, the list of QEMU interpreters to be registered on the host can be limited.
- Add option `--clear`.
- Add option `--test`.
<aside>
These patches have already been submitted upstream and will be hopefully included in future releases.
</aside>
In fact, the entrypoint to the following docker images is a wrapper^[See [`register.sh`](https://(ref:repoTree)/register.sh).] around `qemu-binfmt-conf.sh` to provide some synctactic sugar.
## Manifests
Manifests are provided for the following hosts: `amd64`, `arm64v8`, `arm32v7`, `arm32v6`, `i386`, `s390x` or `ppc64le`. That is, any of the target architectures provided by QEMU can be used on any of those hosts.
The procedure to generate each image involves extracting pre-built binaries and packaging them in container images, along with helper scripts. Hence, multiple images are generated in the process:
<aside>
Find usage instructions in the [README](https://github.com/dbhi/qus/tree/main#usage).
</aside>
- `aptman/qus:pkg`: all the `qemu-*-static` binaries from [packages.debian.org/sid/qemu-user-static](https://packages.debian.org/sid/qemu-user-static) extracted on a `scratch` image.
- `aptman/qus:register`: a `busybox` image with [`register.sh`](./register.sh) and [`qemu-binfmt-conf.sh`](https://raw.githubusercontent.com/qemu/qemu/master/scripts/qemu-binfmt-conf.sh). The entrypoint is set to `register.sh`.
- `aptman/qus`: union of the two previous images.
## Debian [5.0]
For each `HOST_ARCH`, an image named `${HOST_ARCH}-d${VERSION}${TAG}` is published; where `TAG` is `-pkg|-register|""`. Moreover, three manifests are available: `aptman/qus:d${VERSION}-pkg`, `aptman/qus:d${VERSION}-register` and `aptman/qus:d${VERSION}`.
<aside>
`latest`/default versions above correspond to these Debian variants. Therefore, running `aptman/qus` on an `amd64` host is equivalent to running `aptman/qus:d5.0` or `aptman/qus:amd64-d5.0`.
</aside>
Apart from those, `aptman/qus:mips-pkg` and `aptman/qus:mips64el-pkg` are also available.
## Fedora [5.0.0]
For each `HOST_ARCH` (except `arm32v6`), an image named `${HOST_ARCH}-f${VERSION}${TAG}` is published; where `TAG` is `-pkg|-register|""`. Moreover, three manifests are available: `aptman/qus:f${VERSION}-pkg`, `aptman/qus:f${VERSION}-register` and `aptman/qus:f${VERSION}`.