diff options
Diffstat (limited to 'classes/image-oci-sloci-image.inc')
| -rw-r--r-- | classes/image-oci-sloci-image.inc | 67 |
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 @@ | |||
| 1 | IMAGE_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 | } | ||
