From 1773b2c438d669b23d74d3c7c49c66161be04155 Mon Sep 17 00:00:00 2001 From: nathan-tarr-orica Date: Wed, 2 Oct 2024 14:34:51 +1000 Subject: [PATCH] chore: provide specific version of rust toolchain in Docker image (#144) --- ..._orica_server_builder_image_versioned.yaml | 29 ++++++++++ .../orica_server_builder/Dockerfile_versioned | 55 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 .github/workflows/build_orica_server_builder_image_versioned.yaml create mode 100644 docker/orica_server_builder/Dockerfile_versioned diff --git a/.github/workflows/build_orica_server_builder_image_versioned.yaml b/.github/workflows/build_orica_server_builder_image_versioned.yaml new file mode 100644 index 0000000..63bc26c --- /dev/null +++ b/.github/workflows/build_orica_server_builder_image_versioned.yaml @@ -0,0 +1,29 @@ +name: Build builder for orica_server with tagged version + +on: + workflow_dispatch: + +jobs: + build-rust-test-image: + runs-on: ubuntu-latest + steps: + - name: 'Checkout' + uses: actions/checkout@v3 + - name: Login to ACR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # Build and Push Image with Cache + - name: Build & Push + uses: docker/build-push-action@v3 + with: + context: docker/orica_server_builder + push: true + build-args: | + RUST_VERSION=1.80 + tags: | + ghcr.io/foresightminingsoftwarecorporation/orica-server-builder-versioned:rust-1.80 diff --git a/docker/orica_server_builder/Dockerfile_versioned b/docker/orica_server_builder/Dockerfile_versioned new file mode 100644 index 0000000..29ca61b --- /dev/null +++ b/docker/orica_server_builder/Dockerfile_versioned @@ -0,0 +1,55 @@ +FROM ubuntu:focal + +WORKDIR /usr/src/ +ARG RUST_VERSION=1.8.0 +ARG OPENSSL_VERSION=1.1.1m + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get install \ + -yq --no-install-recommends \ + build-essential \ + cmake \ + curl \ + gfortran \ + git \ + gnupg2 \ + gobject-introspection \ + libasound2-dev \ + libatk1.0-0 \ + libcairo-gobject2 \ + libexpat1-dev \ + libfontconfig-dev \ + libfreetype-dev \ + libgdk-pixbuf2.0-0 \ + libglib2.0-0 \ + libgtk-3-dev \ + libmkl-full-dev \ + libomp-8-dev \ + libpango-1.0-0 \ + libssl-dev \ + libudev-dev \ + libxcb-composite0-dev \ + lsb-release \ + musl-dev \ + musl-tools \ + openssh-client \ + pkg-config \ + software-properties-common \ + tzdata \ + wget + +# Static linking for C++ code +RUN ln -s "/usr/bin/g++" "/usr/bin/musl-g++" + +# install Rust +RUN curl https://sh.rustup.rs -sSf | \ + sh -s -- --default-toolchain $RUST_VERSION -y -t x86_64-unknown-linux-musl --profile minimal + +ENV PATH=/root/.cargo/bin:$PATH +RUN rustup target add x86_64-unknown-linux-musl + +# Install OpenSSl +COPY build_openssl_ubuntu.sh build_openssl_ubuntu.sh +RUN ./build_openssl_ubuntu.sh