From e79deea27222c694f7cdd09917702bc672a37cc2 Mon Sep 17 00:00:00 2001 From: Alexander Warth Date: Fri, 4 Dec 2020 11:56:19 +0100 Subject: [PATCH 1/3] Octave as CLI Docker added --- octave-cli/Dockerfile | 36 +++++++++++++++ octave-cli/README.md | 90 ++++++++++++++++++++++++++++++++++++++ octave-cli/hooks/post_push | 8 ++++ 3 files changed, 134 insertions(+) create mode 100644 octave-cli/Dockerfile create mode 100644 octave-cli/README.md create mode 100755 octave-cli/hooks/post_push diff --git a/octave-cli/Dockerfile b/octave-cli/Dockerfile new file mode 100644 index 00000000..13bae7e3 --- /dev/null +++ b/octave-cli/Dockerfile @@ -0,0 +1,36 @@ +FROM clearlinux:latest AS builder + +ARG swupd_args +# Move to latest Clear Linux release to ensure +# that the swupd command line arguments are +# correct +RUN swupd update --no-boot-update $swupd_args + +# Grab os-release info from the minimal base image so +# that the new content matches the exact OS version +COPY --from=clearlinux/os-core:latest /usr/lib/os-release / + +# Install additional content in a target directory +# using the os version from the minimal base +RUN source /os-release && \ + mkdir /install_root \ + && swupd os-install -V ${VERSION_ID} \ + --path /install_root --statedir /swupd-state \ + --bundles=os-core-update,octave --no-boot-update + +# For some Host OS configuration with redirect_dir on, +# extra data are saved on the upper layer when the same +# file exists on different layers. To minimize docker +# image size, remove the overlapped files before copy. +RUN mkdir /os_core_install +COPY --from=clearlinux/os-core:latest / /os_core_install/ +RUN cd / && \ + find os_core_install | sed -e 's/os_core_install/install_root/' | xargs rm -d &> /dev/null || true + +FROM clearlinux/os-core:latest + +COPY --from=builder /install_root / + +WORKDIR /root + +ENTRYPOINT ["octave-cli"] diff --git a/octave-cli/README.md b/octave-cli/README.md new file mode 100644 index 00000000..b224d99c --- /dev/null +++ b/octave-cli/README.md @@ -0,0 +1,90 @@ +# Clear Linux* OS `octave` container image + + +## What is this image? + +`clearlinux/octave-cli` is a Docker image with `octave-cli` running on top of the +[official clearlinux base image](https://hub.docker.com/_/clearlinux). + + +> [octave](https://www.octave.org/) GNU Octave is a high-level language, primarily intended for numerical computations. +> It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments > using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language. + +For other Clear Linux* OS +based container images, see: https://hub.docker.com/u/clearlinux + +## Why use a clearlinux based image? + + +> [Clear Linux* OS](https://clearlinux.org/) is an open source, rolling release +> Linux distribution optimized for performance and security, from the Cloud to +> the Edge, designed for customization, and manageability. + +Clear Linux* OS based container images use: +* Optimized libraries that are compiled with latest compiler versions and + flags. +* Software packages that follow upstream source closely and update frequently. +* An aggressive security model and best practices for CVE patching. +* A multi-staged build approach to keep a reduced container image size. +* The same container syntax as the official images to make getting started + easy. + +To learn more about Clear Linux* OS, visit: https://clearlinux.org. + + +## Deployment: + +### Deploy with Docker +The easiest way to get started with this image is by simply pulling it from +Docker Hub. + + +1. Pull the image from Docker Hub: + ``` + docker pull clearlinux/octave-cli + ``` + +2. Start a container using the examples below: + + ``` + docker run -it --rm -v "$PWD":/root octave-cli your-script.m + ``` + + +### Deploy with Kubernetes + + +## Build and modify: + +The Dockerfiles for all Clear Linux* OS based container images are available at +https://github.com/clearlinux/dockerfiles. These can be used to build and +modify the container images. + +1. Clone the clearlinux/dockerfiles repository. + ``` + git clone https://github.com/clearlinux/dockerfiles.git + ``` + +2. Change to the directory of the application: + ``` + cd octave-cli/ + ``` + +3. Build the container image: + ``` + docker build -t clearlinux/octave-cli . + ``` +4. Please refer to [create custom application container image](https://docs.01.org/clearlinux/latest/guides/maintenance/container-image-modify.html) on how to customize your container image with specific debug capabilities, such as: make, git. + + Refer to the Docker documentation for [default build arguments](https://docs.docker.com/engine/reference/builder/#arg). + Additionally: + + - `swupd_args` - specifies arguments to pass to the Clear Linux* OS software + manager. See the [swupd man pages](https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst#options) + for more information. + + +## Licenses + +All licenses for the Clear Linux* Project and distributed software can be found +at https://clearlinux.org/terms-and-policies diff --git a/octave-cli/hooks/post_push b/octave-cli/hooks/post_push new file mode 100755 index 00000000..d706aac1 --- /dev/null +++ b/octave-cli/hooks/post_push @@ -0,0 +1,8 @@ +#!/bin/bash +. ../docker-hooks.sh + +image="clearlinux/octave" +package=octave + +do_tag $image $package + From cd7c801b0c69b41921c1e0383a2f38a644c70d93 Mon Sep 17 00:00:00 2001 From: SicLuceatLux <43041463+SicLuceatLux@users.noreply.github.com> Date: Fri, 4 Dec 2020 12:02:20 +0100 Subject: [PATCH 2/3] Update README.md typo --- octave-cli/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/octave-cli/README.md b/octave-cli/README.md index b224d99c..0affdbce 100644 --- a/octave-cli/README.md +++ b/octave-cli/README.md @@ -47,7 +47,7 @@ Docker Hub. 2. Start a container using the examples below: ``` - docker run -it --rm -v "$PWD":/root octave-cli your-script.m + docker run -it --rm -v "$PWD":/root clearlinux/octave-cli your-script.m ``` From 78383a73ab51ec169cec68f62d80a19c9b0b1cf6 Mon Sep 17 00:00:00 2001 From: SicLuceatLux <43041463+SicLuceatLux@users.noreply.github.com> Date: Fri, 4 Dec 2020 12:02:51 +0100 Subject: [PATCH 3/3] Update post_push typo --- octave-cli/hooks/post_push | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/octave-cli/hooks/post_push b/octave-cli/hooks/post_push index d706aac1..78cfaac8 100755 --- a/octave-cli/hooks/post_push +++ b/octave-cli/hooks/post_push @@ -1,7 +1,7 @@ #!/bin/bash . ../docker-hooks.sh -image="clearlinux/octave" +image="clearlinux/octave-cli" package=octave do_tag $image $package