Skip to content

Commit

Permalink
Update CMake 3.31.2, Clang 19 and Qt 6.8.1
Browse files Browse the repository at this point in the history
* use HEREDOC strings in Dockerfile
  • Loading branch information
arBmind committed Dec 10, 2024
1 parent 51a86a3 commit e808655
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 103 deletions.
18 changes: 9 additions & 9 deletions .github/workflows/docker_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,29 @@ jobs:
fail-fast: false
matrix:
distro: ['noble']
cmake_version: ['3.29.7', '3.30.2']
cmake_version: ['3.30.6', '3.31.2']
clang: [
{major: 16, source: 'apt'},
{major: 17, source: 'llvm'},
{major: 18, source: 'llvm'}
{major: 17, source: 'apt'},
{major: 18, source: 'llvm'},
{major: 19, source: 'llvm'}
]
gcc: [
{major: 12, source: 'apt'},
{major: 13, source: 'apt'},
{major: 14, source: 'apt'}
]
qt: [
{version: '6.5.3', arch: 'gcc_64'},
{version: '6.6.3', arch: 'gcc_64'},
{version: '6.7.2', arch: 'linux_gcc_64'}
{version: '6.7.3', arch: 'gcc_64'},
{version: '6.8.1', arch: 'linux_gcc_64'}
]

include:
- distro: noble
cmake_version: '3.30.2'
clang: {major: 18, source: 'llvm'}
cmake_version: '3.31.2'
clang: {major: 19, source: 'llvm'}
gcc: {major: 14, source: 'apt'}
qt: {version: '6.7.2', arch: 'linux_gcc_64'}
qt: {version: '6.8.1', arch: 'linux_gcc_64'}
gcc_tags: |
arbmind/cmake-gcc:latest
ghcr.io/arbmind/cmake-gcc:latest
Expand Down
209 changes: 115 additions & 94 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,10 @@ ARG QTGUI_PACKAGES=libegl-dev \
libxkbcommon-x11-0 \
libxcb-randr0



# base Qt setup
FROM python:3.10-slim as qt_base
FROM python:3.10-slim AS qt_base
ARG QT_ARCH
ARG QT_VERSION
ARG QT_MODULES
Expand All @@ -52,18 +54,23 @@ ARG DEBIAN_FRONTEND=noninteractive

RUN pip install aqtinstall

RUN \
apt update --quiet \
&& apt-get install --yes --quiet --no-install-recommends \
RUN <<INSTALL_7ZIP
apt update --quiet
apt-get install --yes --quiet --no-install-recommends \
p7zip-full \
libglib2.0-0 \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
libglib2.0-0
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_7ZIP

RUN <<INSTALL_QT
set -e
mkdir /qt
cd /qt
aqt install-qt linux desktop ${QT_VERSION} ${QT_ARCH} -m ${QT_MODULES} --external $(which 7zr)
INSTALL_QT

RUN \
mkdir /qt && cd /qt \
&& aqt install-qt linux desktop ${QT_VERSION} ${QT_ARCH} -m ${QT_MODULES} --external $(which 7zr)


# base CMake setup
Expand All @@ -72,19 +79,22 @@ ARG CMAKE_URL
ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 12, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 13, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 14, apt, 6.7.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 19, llvm, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 14, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 79 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ARG DEBIAN_FRONTEND=noninteractive

RUN \
apt-get update --quiet \
&& apt-get upgrade --yes --quiet \
&& apt-get install --yes --quiet --no-install-recommends \
RUN <<INSTALL_WGET
apt-get update --quiet
apt-get upgrade --yes --quiet
apt-get install --yes --quiet --no-install-recommends \
ca-certificates \
wget \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
wget
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_WGET

RUN <<INSTALL_CMAKE
mkdir -p /opt/cmake
wget -q -c ${CMAKE_URL} -O - | tar --strip-components=1 -xz -C /opt/cmake
INSTALL_CMAKE

RUN \
mkdir -p /opt/cmake \
&& wget -q -c ${CMAKE_URL} -O - | tar --strip-components=1 -xz -C /opt/cmake


# base compiler setup for GCC
Expand All @@ -100,37 +110,39 @@ ENV \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8

# install GCC
RUN \
apt-get update --quiet \
&& apt-get upgrade --yes --quiet \
&& apt-get install --yes --quiet --no-install-recommends \
RUN <<INSTALL_GCC
set -e
apt-get update --quiet
apt-get upgrade --yes --quiet
apt-get install --yes --quiet --no-install-recommends \
libglib2.0-0 \
apt-transport-https \
ca-certificates \
gnupg \
wget \
&& if [ "$GCC_SOURCE" = "ppa" ] ; then \
wget -qO - "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x60c317803a41ba51845e371a1e9377a2ba9ef27f" | apt-key add - \
&& echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${DISTRO} main" > /etc/apt/sources.list.d/gcc.list \
&& apt-get update --quiet \
; fi \
&& apt-get install --yes --quiet --no-install-recommends \
wget
if [ "$GCC_SOURCE" = "ppa" ] ; then
wget -qO - "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x60c317803a41ba51845e371a1e9377a2ba9ef27f" | apt-key add -
echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${DISTRO} main" > /etc/apt/sources.list.d/gcc.list
apt-get update --quiet
fi
apt-get install --yes --quiet --no-install-recommends \
git \
ninja-build \
make \
libstdc++-${GCC_MAJOR}-dev \
gcc-${GCC_MAJOR} \
g++-${GCC_MAJOR} \
${RUNTIME_APT} \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-${GCC_MAJOR} 100 \
&& update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${GCC_MAJOR} 100 \
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_MAJOR} 100 \
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_MAJOR} 100 \
&& c++ --version \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
${RUNTIME_APT}
update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-${GCC_MAJOR} 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${GCC_MAJOR} 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_MAJOR} 100
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_MAJOR} 100
c++ --version
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_GCC



# final cmake-gcc (no Qt)
Expand All @@ -140,13 +152,14 @@ ARG GCC_MAJOR
ARG CMAKE_VERSION

LABEL Description="Ubuntu ${DISTRO} - Gcc${GCC_MAJOR} + CMake ${CMAKE_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
ENV \
PATH=/opt/cmake/bin:${PATH}



# final cmake-gcc-gt (with Qt)
FROM gcc_base AS cmake-gcc-qt
ARG DISTRO
Expand All @@ -156,7 +169,7 @@ ARG QT_VERSION
ARG QT_ARCH

LABEL Description="Ubuntu ${DISTRO} - Gcc${GCC_MAJOR} + CMake ${CMAKE_VERSION} + Qt ${QT_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
COPY --from=qt_base /qt/${QT_VERSION} /qt/${QT_VERSION}
Expand All @@ -166,6 +179,7 @@ ENV \
LD_LIBRARY_PATH=/qt/${QT_VERSION}/gcc_64/lib:${LD_LIBRARY_PATH}



# base compiler setup for Clang
FROM ubuntu:${DISTRO} AS clang_base
ARG DISTRO
Expand All @@ -180,20 +194,21 @@ ENV \
LC_ALL=C.UTF-8

# install Clang (https://apt.llvm.org/)
RUN apt-get update --quiet \
&& apt-get upgrade --yes --quiet \
&& apt-get install --yes --quiet --no-install-recommends \
RUN <<INSTALL_CLANG
apt-get update --quiet
apt-get upgrade --yes --quiet
apt-get install --yes --quiet --no-install-recommends \
libglib2.0-0 \
wget \
gnupg \
apt-transport-https \
ca-certificates \
&& if [ "$CLANG_SOURCE" = "llvm" ] ; then \
wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& echo "deb http://apt.llvm.org/${DISTRO}/ llvm-toolchain-${DISTRO}-${CLANG_MAJOR} main" > /etc/apt/sources.list.d/llvm.list \
&& apt-get update --quiet \
; fi \
&& apt-get install --yes --quiet --no-install-recommends \
ca-certificates
if [ "$CLANG_SOURCE" = "llvm" ] ; then
wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
echo "deb http://apt.llvm.org/${DISTRO}/ llvm-toolchain-${DISTRO}-${CLANG_MAJOR} main" > /etc/apt/sources.list.d/llvm.list
apt-get update --quiet
fi
apt-get install --yes --quiet --no-install-recommends \
git \
ninja-build \
make \
Expand All @@ -202,19 +217,19 @@ RUN apt-get update --quiet \
lld-${CLANG_MAJOR} \
libc++abi-${CLANG_MAJOR}-dev \
libc++-${CLANG_MAJOR}-dev \
$( [ $CLANG_MAJOR -ge 12 ] && echo "libunwind-${CLANG_MAJOR}-dev" ) \
&& update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${CLANG_MAJOR} 100 \
&& update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${CLANG_MAJOR} 100 \
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_MAJOR} 100 \
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${CLANG_MAJOR} 100 \
&& update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld-${CLANG_MAJOR} 10 \
&& update-alternatives --install /usr/bin/ld ld /usr/bin/ld.gold 20 \
&& update-alternatives --install /usr/bin/ld ld /usr/bin/ld.bfd 30 \
&& c++ --version \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*

$( [ $CLANG_MAJOR -ge 12 ] && echo "libunwind-${CLANG_MAJOR}-dev" )
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${CLANG_MAJOR} 100
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${CLANG_MAJOR} 100
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_MAJOR} 100
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${CLANG_MAJOR} 100
update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld-${CLANG_MAJOR} 10
update-alternatives --install /usr/bin/ld ld /usr/bin/ld.gold 20
update-alternatives --install /usr/bin/ld ld /usr/bin/ld.bfd 30
c++ --version
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_CLANG

# final cmake-clang (no Qt)
FROM clang_base AS cmake-clang
Expand All @@ -223,7 +238,7 @@ ARG CLANG_MAJOR
ARG CMAKE_VERSION

LABEL Description="Ubuntu ${DISTRO} - Clang${CLANG_MAJOR} + CMake ${CMAKE_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
ENV \
Expand All @@ -240,13 +255,14 @@ ARG CLANG_QT_URL
ARG QT_EXTRAS_URL

LABEL Description="Ubuntu ${DISTRO} - Clang${CLANG_MAJOR} + CMake ${CMAKE_VERSION} + Qt ${QT_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
RUN \
mkdir -p /opt/qt${QT_VERSION} \
&& wget -q -c ${CLANG_QT_URL} -O - | tar --strip-components=1 -xz -C /opt/qt${QT_VERSION} \
&& wget -q -c ${QT_EXTRAS_URL} -O - | tar --strip-components=1 -xz -C /opt/qt${QT_VERSION}/lib
RUN <<INSTALL_CLANG_QT
mkdir -p /opt/qt${QT_VERSION}
wget -q -c ${CLANG_QT_URL} -O - | tar --strip-components=1 -xz -C /opt/qt${QT_VERSION}
wget -q -c ${QT_EXTRAS_URL} -O - | tar --strip-components=1 -xz -C /opt/qt${QT_VERSION}/lib
INSTALL_CLANG_QT

ENV \
QTDIR=/opt/qt${QT_VERSION} \
Expand All @@ -262,17 +278,19 @@ ARG GCC_SOURCE
ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.8.1, linux_gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 18, llvm, 13, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 14, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

Check warning on line 278 in Dockerfile

View workflow job for this annotation

GitHub Actions / CMake Docker builds (noble, 3.30.6, 17, apt, 12, apt, 6.6.3, gcc_64)

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/
ARG DEBIAN_FRONTEND=noninteractive

RUN \
if [ "$GCC_SOURCE" = "ppa" ] ; then \
wget -qO - "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x60c317803a41ba51845e371a1e9377a2ba9ef27f" | apt-key add - \
&& echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${DISTRO} main" > /etc/apt/sources.list.d/gcc.list \
&& apt-get update --quiet \
; fi \
&& apt-get install --yes --quiet --no-install-recommends \
libstdc++-${GCC_MAJOR}-dev \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
RUN <<INSTALL_LIBSTDCPP
if [ "$GCC_SOURCE" = "ppa" ] ; then
wget -qO - "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x60c317803a41ba51845e371a1e9377a2ba9ef27f" | apt-key add -
echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu ${DISTRO} main" > /etc/apt/sources.list.d/gcc.list
apt-get update --quiet
fi
apt-get install --yes --quiet --no-install-recommends \
libstdc++-${GCC_MAJOR}-dev
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_LIBSTDCPP



# final cmake-clang-libstdcpp (no Qt)
Expand All @@ -283,13 +301,14 @@ ARG GCC_MAJOR
ARG CMAKE_VERSION

LABEL Description="Ubuntu ${DISTRO} - Clang${CLANG_MAJOR} + Libstdc++-${GCC_MAJOR} + CMake ${CMAKE_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
ENV \
PATH=/opt/cmake/bin:${PATH}



# final cmake-clang-qt (with Qt)
FROM clang_libstdcpp_base AS cmake-clang-libstdcpp-qt
ARG DISTRO
Expand All @@ -300,7 +319,7 @@ ARG QT_VERSION
ARG QT_ARCH

LABEL Description="Ubuntu ${DISTRO} - Clang${CLANG_MAJOR} + Libstdc++-${GCC_MAJOR} + CMake ${CMAKE_VERSION} + Qt ${QT_VERSION}"
LABEL org.opencontainers.image.source = "https://github.com/arBmind/cmake-containers"
LABEL org.opencontainers.image.source="https://github.com/arBmind/cmake-containers"

COPY --from=cmake_base /opt/cmake /opt/cmake
COPY --from=qt_base /qt/${QT_VERSION} /qt/${QT_VERSION}
Expand All @@ -310,15 +329,17 @@ ENV \
LD_LIBRARY_PATH=/qt/${QT_VERSION}/gcc_64/lib:${LD_LIBRARY_PATH}



# final qtqui (as developer setup)
FROM ${QTGUI_BASE_IMAGE} AS cmake-qtgui-dev
ARG QTGUI_PACKAGES

RUN \
apt update --quiet \
&& apt-get install --yes --quiet --no-install-recommends \
RUN <<INSTALL_QTGUI_PACKAGES
apt update --quiet
apt-get install --yes --quiet --no-install-recommends \
${QTGUI_PACKAGES} \
gdb \
&& apt-get --yes autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
gdb
apt-get --yes autoremove
apt-get clean autoclean
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
INSTALL_QTGUI_PACKAGES

0 comments on commit e808655

Please sign in to comment.