From 843bd6708cf4f4ad07b6af7eaa83b889d37f98c7 Mon Sep 17 00:00:00 2001 From: haiqi96 <14502009+haiqi96@users.noreply.github.com> Date: Mon, 5 Feb 2024 17:30:02 -0500 Subject: [PATCH] Add Ubuntu 22.04 execution container; Use machine's architecture name for local builds. (#264) --- .../clp-execution-base-focal/build.sh | 22 +++++++++++++++-- .../install-prebuilt-packages.sh | 2 +- .../clp-execution-base-jammy/Dockerfile | 15 ++++++++++++ .../clp-execution-base-jammy/build.sh | 24 +++++++++++++++++++ .../install-prebuilt-packages.sh | 16 +++++++++++++ 5 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 tools/docker-images/clp-execution-base-jammy/Dockerfile create mode 100755 tools/docker-images/clp-execution-base-jammy/build.sh create mode 100755 tools/docker-images/clp-execution-base-jammy/setup-scripts/install-prebuilt-packages.sh diff --git a/tools/docker-images/clp-execution-base-focal/build.sh b/tools/docker-images/clp-execution-base-focal/build.sh index e8b1cde88..cecd834a3 100755 --- a/tools/docker-images/clp-execution-base-focal/build.sh +++ b/tools/docker-images/clp-execution-base-focal/build.sh @@ -1,6 +1,24 @@ -#!/bin/bash +#!/usr/bin/env bash + +# Exit on any error +set -e + +# Error on undefined variable +set -u script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" repo_root=${script_dir}/../../../ -docker build -t clp-execution-x86-ubuntu-focal:dev ${repo_root} --file ${script_dir}/Dockerfile +arch=$(uname -m) + +if [ "$arch" = "x86_64" ]; then + arch_name="x86" +elif [ "$arch" = "aarch64" ]; then + arch_name="arm64" +else + echo "Error: Unsupported architecture - $arch" + exit 1 +fi + +docker build -t clp-execution-${arch_name}-ubuntu-focal:dev ${repo_root} \ + --file ${script_dir}/Dockerfile diff --git a/tools/docker-images/clp-execution-base-focal/setup-scripts/install-prebuilt-packages.sh b/tools/docker-images/clp-execution-base-focal/setup-scripts/install-prebuilt-packages.sh index 90306f8db..cab32f820 100755 --- a/tools/docker-images/clp-execution-base-focal/setup-scripts/install-prebuilt-packages.sh +++ b/tools/docker-images/clp-execution-base-focal/setup-scripts/install-prebuilt-packages.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Exit on any error set -e diff --git a/tools/docker-images/clp-execution-base-jammy/Dockerfile b/tools/docker-images/clp-execution-base-jammy/Dockerfile new file mode 100644 index 000000000..37efa356e --- /dev/null +++ b/tools/docker-images/clp-execution-base-jammy/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:jammy + +WORKDIR /root + +RUN mkdir -p ./tools/docker-images/clp-execution-base-jammy +ADD ./tools/docker-images/clp-execution-base-jammy/setup-scripts ./tools/docker-images/clp-execution-base-jammy/setup-scripts + +RUN mkdir -p ./tools/scripts/lib_install +ADD ./components/core/tools/scripts/lib_install ./tools/scripts/lib_install + +RUN ./tools/docker-images/clp-execution-base-jammy/setup-scripts/install-prebuilt-packages.sh + +# Reset the working directory so that it's accessible by any user who runs the +# container +WORKDIR / diff --git a/tools/docker-images/clp-execution-base-jammy/build.sh b/tools/docker-images/clp-execution-base-jammy/build.sh new file mode 100755 index 000000000..fab7424b0 --- /dev/null +++ b/tools/docker-images/clp-execution-base-jammy/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# Exit on any error +set -e + +# Error on undefined variable +set -u + +script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +repo_root=${script_dir}/../../../ + +arch=$(uname -m) + +if [ "$arch" = "x86_64" ]; then + arch_name="x86" +elif [ "$arch" = "aarch64" ]; then + arch_name="arm64" +else + echo "Error: Unsupported architecture - $arch" + exit 1 +fi + +docker build -t clp-execution-${arch_name}-ubuntu-jammy:dev ${repo_root} \ + --file ${script_dir}/Dockerfile diff --git a/tools/docker-images/clp-execution-base-jammy/setup-scripts/install-prebuilt-packages.sh b/tools/docker-images/clp-execution-base-jammy/setup-scripts/install-prebuilt-packages.sh new file mode 100755 index 000000000..cab32f820 --- /dev/null +++ b/tools/docker-images/clp-execution-base-jammy/setup-scripts/install-prebuilt-packages.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# Exit on any error +set -e + +# Error on undefined variable +set -u + +apt-get update +DEBIAN_FRONTEND=noninteractive apt-get install -y \ + checkinstall \ + curl \ + libmariadb-dev \ + python3 \ + rsync \ + zstd