Commit Graph

2 Commits

Author SHA1 Message Date
Fabrice Fontaine
efe832dbc3 fs/oci: depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
Add a dependency on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS to avoid
the following build failure when GO_GOARCH is empty (e.g. on mips32)
which leads to an empty --arch argument in the sloci-image call, raised
since the addition of the package in commmit
ccda2f4bdc:

printf '   	rm -rf /home/autobuild/autobuild/instance-6/output-1/images/rootfs-oci\n	/home/autobuild/autobuild/instance-6/output-1/host/bin/sloci-image --arch   --entrypoint "sh" --author "Buildroot" --user "0" /home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/oci/target /home/autobuild/autobuild/instance-6/output-1/images/rootfs-oci:latest\n' >> /home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/oci/fakeroot
chmod a+x /home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/oci/fakeroot
PATH="/home/autobuild/autobuild/instance-6/output-1/host/bin:/home/autobuild/autobuild/instance-6/output-1/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" FAKEROOTDONTTRYCHOWN=1 /home/autobuild/autobuild/instance-6/output-1/host/bin/fakeroot -- /home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/oci/fakeroot
rootdir=/home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/oci/target
table='/home/autobuild/autobuild/instance-6/output-1/build/buildroot-fs/full_devices_table.txt'
Usage:
  sloci-image [options] ROOTFS NAME[:TAG]
  sloci-image [-h | -V]

Create a single-layer OCI image with the given rootfs.

Arguments:
  ROOTFS                 Directory or tar.gz archive with rootfs to pack into the image.
                         Important: Archive will be *moved* to the image, so make a copy if you
                         need it. Directory will be preserved.

  NAME                   Name of the image.

  TAG                    Tag for the image. Defaults to "latest".

Options:
  -m --arch ARCH         CPU architecture which the binaries in this image are built to run on.
                         Defaults to $(uname -m).

     --arch-variant      Variant of the CPU. This is typically used only for arm (v6, v7, v8).

  -a --author NAME       Name and/or email address of the person which created the image.

  -c --cmd CMD           Default arguments to the entrypoint of the container.

     --debug             Print debug messages (it can be also enabled with env. variable DEBUG).

  -C --entrypoint EP     Arguments to use as the command to execute when the container starts.

  -e --env VAR=VAL       Default environment variables for container.

  -l --label KEY=VALUE   Metadata for the container compliant with OCI annotation rules.
                         If KEY starts with a dot, it will be prefixed with
                         "org.opencontainers.image" (e.g. .url -> org.opencontainers.image.url).

     --os OS             Name of the OS which the image is built to run on. Defaults to "linux".

  -p --port PORT[/PROT]  Default set of ports to expose from a container running this image in
                         format: <port>/tcp, <port>/udp, or <port> (same as <port>/tcp).
                         Aliases: --expose.

  -t --tar               Pack image in a TAR archive.

  -u --user USER         The username or UID of user the process run as.

  -v --volume PATH       Default set of directories describing where the process is likely write
                         data specific to a container instance.

  -w --working-dir DIR   Sets the current working directory of the entrypoint process in the
                         container.

  -V --version           Print version and exit.

  -h --help              Print this message and exit.

Please report bugs at <https://github.com/jirutka/sloci-image/issues>.
make: *** [fs/oci/oci.mk:99: /home/autobuild/autobuild/instance-6/output-1/images/rootfs.oci] Error 1

Fixes:
 - http://autobuild.buildroot.org/results/44da17a393421dfcb8bbdd63074cb82b436dfa94

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-04-04 21:19:37 +02:00
Sergio Prado
ccda2f4bdc fs: new OCI filesystem type
Add support to generate OCI (Open Container Initiative) images.

An OCI image consists of a manifest, an image index (optional), a set of
filesystem layers, and a configuration. The complete specification is
available in the link below:

https://github.com/opencontainers/image-spec/blob/master/spec.md

The image is generated with the host tool sloci-image, and config
options can be used to configure image parameters.

By default, the image is generated in a directory called rootfs-oci:

$ cd output/images
$ ls rootfs-oci/
blobs  index.json  oci-layout

Optionally, the image can be packed into a tar archive.

The image can be pushed to a registry using containers tools like
skopeo:

$ skopeo copy --dest-creds <user>:<pass> oci:rootfs-oci:<tag> \
	docker://<user>/<image>[:tag]

And then we can pull/run the container image with tools like docker:

$ docker run -it <user>/<image>[:tag]

Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
Signed-off-by: Matthew Weber <matthew.weber@collins.com>
[Arnout:
 - mention in help text that options are space separated;
 - use GO_GOARCH and GO_GOARM for architecture;
 - quote all arguments;
 - don't cd to BINARIES_DIR;
 - remove ROOTFS_OCI_IMAGE_NAME variable;
 - remove wildcard from rm.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-09-11 14:52:41 +02:00