summaryrefslogtreecommitdiffstats
path: root/classes/image-oci-sloci-image.inc
diff options
context:
space:
mode:
Diffstat (limited to 'classes/image-oci-sloci-image.inc')
-rw-r--r--classes/image-oci-sloci-image.inc67
1 files changed, 67 insertions, 0 deletions
diff --git a/classes/image-oci-sloci-image.inc b/classes/image-oci-sloci-image.inc
new file mode 100644
index 00000000..36d3c2da
--- /dev/null
+++ b/classes/image-oci-sloci-image.inc
@@ -0,0 +1,67 @@
1IMAGE_CMD_oci() {
2 sloci_options=""
3
4 bbdebug 1 "OCI image settings:"
5 bbdebug 1 " author: ${OCI_IMAGE_AUTHOR}"
6 bbdebug 1 " author email: ${OCI_IMAGE_AUTHOR_EMAIL}"
7 bbdebug 1 " tag: ${OCI_IMAGE_TAG}"
8 bbdebug 1 " arch: ${OCI_IMAGE_ARCH}"
9 bbdebug 1 " subarch: ${OCI_IMAGE_SUBARCH}"
10 bbdebug 1 " entrypoint: ${OCI_IMAGE_ENTRYPOINT}"
11 bbdebug 1 " entrypoing args: ${OCI_IMAGE_ENTRYPOINT_ARGS}"
12 bbdebug 1 " labels: ${OCI_IMAGE_LABELS}"
13 bbdebug 1 " uid: ${OCI_IMAGE_RUNTIME_UID}"
14 bbdebug 1 " working dir: ${OCI_IMAGE_WORKINGDIR}"
15 bbdebug 1 " env vars: ${OCI_IMAGE_ENV_VARS}"
16 bbdebug 1 " ports: ${OCI_IMAGE_PORTS}"
17
18 # Change into the image deploy dir to avoid having any output operations capture
19 # long directories or the location.
20 cd ${IMGDEPLOYDIR}
21
22 oci_image_label_options=""
23 if [ -n "${OCI_IMAGE_LABELS}" ]; then
24 for l in ${OCI_IMAGE_LABELS}; do
25 oci_image_label_options="${oci_image_label_options} --label ${l}"
26 done
27 fi
28 oci_image_env_options=""
29 if [ -n "${OCI_IMAGE_ENV_VARS}" ]; then
30 for l in ${OCI_IMAGE_ENV_VARS}; do
31 oci_image_env_options="${oci_image_env_options} --env ${l}"
32 done
33 fi
34 oci_image_port_options=""
35 if [ -n "${OCI_IMAGE_PORTS}" ]; then
36 for l in ${OCI_IMAGE_PORTS}; do
37 oci_image_port_options="${oci_image_port_options} --port ${l}"
38 done
39 fi
40
41 if [ -n "${OCI_IMAGE_RUNTIME_UID}" ]; then
42 oci_image_user_options="--user ${OCI_IMAGE_RUNTIME_UID}"
43 fi
44
45 if [ -n "${OCI_IMAGE_WORKINGDIR}" ]; then
46 oci_image_working_dir_options="--working-dir ${OCI_IMAGE_WORKINGDIR}"
47 fi
48
49 if [ -n "${OCI_IMAGE_TAR_OUTPUT}" ]; then
50 sloci_options="$sloci_options --tar"
51 fi
52
53 # options that always appear are required for a valid oci container image
54 # others are optional based on settings.
55 sloci-image $sloci_options \
56 --arch ${OCI_IMAGE_ARCH} \
57 --arch-variant "${OCI_IMAGE_SUBARCH}" \
58 --entrypoint ${OCI_IMAGE_ENTRYPOINT} \
59 --cmd "${OCI_IMAGE_ENTRYPOINT_ARGS}" \
60 --author ${OCI_IMAGE_AUTHOR_EMAIL} \
61 ${oci_image_user_options} \
62 ${oci_image_label_options} \
63 ${oci_image_env_options} \
64 ${oci_image_working_dir_options} \
65 ${oci_image_port_options} \
66 ${IMAGE_ROOTFS} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}-oci:${OCI_IMAGE_TAG}
67}