Skip to content

Commit

Permalink
Production docker updates. (#654)
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-forbes-cp authored Jan 24, 2025
1 parent 63cdab0 commit 43c0b3e
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 53 deletions.
38 changes: 12 additions & 26 deletions .github/dockerfiles/Dockerfile_22.04
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
FROM ubuntu:22.04

RUN apt-get update

# FROM INFRA UBUNTU BASE

RUN apt-get install -y git git-crypt wget curl jq xz-utils build-essential zlib1g-dev lsb-release libssl-dev
# Set the timezone, required to avoid hanging on input
ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# FROM 22 OCK BASE - if not already added

# Enable ability to install foreign packages for cross compilation
RUN dpkg --add-architecture i386
RUN dpkg --add-architecture arm64
Expand All @@ -25,12 +20,18 @@ RUN wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.243-jammy.list https://pa
# Sync the two above package repositories
RUN apt-get update

# Add clang-tidy
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
RUN apt-get update
RUN apt-get install --yes clang-tidy-19

# Install minimum requirements
RUN apt-get install --yes cmake libtinfo-dev
# Install vulkan-sdk
RUN apt-get install --yes vulkan-sdk
# Install 32-bit requirements
RUN apt-get install --yes gcc-multilib g++-multilib libc6-dev:i386 lib32tinfo-dev
RUN apt-get install --yes gcc-multilib g++-multilib libc6-dev:i386 lib32tinfo-dev lib32ncurses-dev
# Install Arm requirements
RUN apt-get install --yes gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
# Install AArch64 requirements
Expand All @@ -47,34 +48,19 @@ RUN apt-get install --yes parallel
RUN apt-get install --yes qemu-user
# Install pkg-config for dpc++ builds and locally built spir-v
RUN apt-get install --yes pkg-config
# Install spirv tools
RUN apt-get install --yes spirv-tools

# Set-up pip
RUN update-alternatives --install /usr/bin/pip pip `which pip3` 30

# Install python packages
RUN pip install cmakelint colorama flake8 lit pylint requests virtualenv yapf python-gitlab distro clang-format==19.1.0

# FROM OUR CURRENT INSTALLS PLUS ANY NEW EXTRAS - if not already added

RUN apt-get -y install sudo
RUN apt-get -y install gh
RUN apt install -y zstd
RUN apt install -y gnupg
RUN apt install -y gcc g++
RUN apt install -y file

# DO THIS LAST

# Install recent version of ccache in /usr
# Redis support requires ccache 4.4 or newer.
RUN git clone https://github.com/ccache/ccache.git && \
cd ccache && \
LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`); \
git -c advice.detachedHead=false checkout ${LATEST_TAG} && \
#/usr/local/bin/cmake -Bbuild -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
# -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON \
# -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 -DENABLE_TESTING=OFF && \
#/usr/local/bin/cmake --build build --target install && \
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
-DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON \
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DENABLE_TESTING=OFF && \
cmake --build build --target install && \
cd - && rm -rf ccache
RUN apt install -y ccache
36 changes: 11 additions & 25 deletions .github/dockerfiles/Dockerfile_24.04
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
FROM ubuntu:24.04

RUN apt-get update

# FROM INFRA UBUNTU BASE

RUN apt-get install -y git git-crypt wget curl jq xz-utils build-essential zlib1g-dev lsb-release libssl-dev
# Set the timezone, required to avoid hanging on input
ENV TZ=Europe/London
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# FROM 24 OCK BASE - if not already added

# Enable ability to install foreign packages for cross compilation
RUN dpkg --add-architecture i386
RUN dpkg --add-architecture arm64
Expand All @@ -25,6 +20,12 @@ RUN wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list https://packages.l
# Sync the two above package repositories
RUN apt-get update

# Add clang-tidy
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
RUN apt-get update
RUN apt-get install --yes clang-tidy-19

# Install minimum requirements
RUN apt-get install --yes cmake libtinfo-dev
RUN apt-get install --yes vulkan-sdk
Expand All @@ -46,6 +47,8 @@ RUN apt-get install --yes parallel
RUN apt-get install --yes qemu-user
# Install pkgconf for dpc++ builds and locally built spir-v
RUN apt-get install --yes pkgconf:amd64 pkgconf:arm64 pkgconf:i386 pkgconf:riscv64
# Install spirv tools
RUN apt-get install --yes spirv-tools

# Set-up pip
RUN update-alternatives --install /usr/bin/pip pip `which pip3` 30
Expand All @@ -54,27 +57,10 @@ RUN update-alternatives --install /usr/bin/pip pip `which pip3` 30
RUN apt-get install --yes python3-colorama python3-distro python3-flake8 python3-gitlab python3-requests python3-virtualenv python3-yapf pipx
RUN PIPX_HOME=/usr/local/share/pipx PIPX_BIN_DIR=/usr/local/bin PIPX_MAN_DIR=/usr/local/share/man pipx install cmakelint lit pylint clang-format==19.1.0

# FROM OUR CURRENT INSTALLS PLUS ANY NEW EXTRAS - if not already added

RUN apt-get -y install sudo
RUN apt-get -y install gh
RUN apt install -y zstd
RUN apt install -y gnupg
RUN apt install -y gcc g++
RUN apt install -y file

# DO THIS LAST

# Install recent version of ccache in /usr
# Redis support requires ccache 4.4 or newer.
RUN git clone https://github.com/ccache/ccache.git && \
cd ccache && \
LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`); \
git -c advice.detachedHead=false checkout ${LATEST_TAG} && \
#/usr/local/bin/cmake -Bbuild -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
# -DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON \
# -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 -DENABLE_TESTING=OFF && \
#/usr/local/bin/cmake --build build --target install && \
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
-DZSTD_FROM_INTERNET=ON -DHIREDIS_FROM_INTERNET=ON \
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DENABLE_TESTING=OFF && \
cmake --build build --target install && \
cd - && rm -rf ccache
RUN apt install -y ccache
4 changes: 2 additions & 2 deletions .github/workflows/publish_docker_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ jobs:
run: |
for dockerfile in ${{ github.workspace }}/.github/dockerfiles/Dockerfile_* ; do
VERSION=${dockerfile##*_}
docker build . -f $dockerfile --tag $REGISTRY/ock_test_ubuntu_$VERSION:latest
docker push $REGISTRY/ock_test_ubuntu_$VERSION:latest
docker build . -f $dockerfile --tag $REGISTRY/ock_ubuntu_$VERSION:latest
docker push $REGISTRY/ock_ubuntu_$VERSION:latest
done

0 comments on commit 43c0b3e

Please sign in to comment.