Build: add docker build for GCC-12.2.0
[marnav.git] / bin / docker-prepare-image.sh
blobdded673da2d723516e29851ab774716269d38bc3
1 #!/bin/bash -e
3 SCRIPT_BASE=$(dirname `readlink -f $0`)
5 supported_compilers=(
6 "gcc-4.9.4;gcc:4.9.4"
7 "gcc-5.5.0;gcc:5.5.0"
8 "gcc-6.5.0;gcc:6.5.0"
9 "gcc-7.4.0;gcc:7.4.0"
10 "gcc-8.3.0;gcc:8.3.0"
11 "gcc-8.4.0;gcc:8.4.0"
12 "gcc-9.1.0;gcc:9.1.0"
13 "gcc-9.2.0;gcc:9.2.0"
14 "gcc-9.3.0;gcc:9.3.0"
15 "gcc-9.4.0;gcc:9.4.0"
16 "gcc-9.5.0;gcc:9.5.0"
17 "gcc-10.1.0;gcc:10.1.0"
18 "gcc-10.2.0;gcc:10.2.0"
19 "gcc-10.3.0;gcc:10.3.0"
20 "gcc-10.4.0;gcc:10.4.0"
21 "gcc-11.1.0;gcc:11.1.0"
22 "gcc-11.2.0;gcc:11.2.0"
23 "gcc-11.3.0;gcc:11.3.0"
24 "gcc-12.1.0;gcc:12.1.0"
25 "gcc-12.2.0;gcc:12.2.0"
26 # "clang-3.6.1;debian:buster"
27 # "clang-3.6.2;debian:buster"
28 # "clang-3.7.0;debian:buster"
29 # "clang-3.7.1;debian:buster"
30 # "clang-3.8.1;debian:buster"
31 # "clang-3.9.0;debian:buster"
32 # "clang-3.9.1;debian:buster"
33 # "clang-4.0.0;debian:buster"
34 # "clang-4.0.1;debian:buster"
35 # "clang-5.0.0;debian:buster"
36 # "clang-5.0.1;debian:buster"
37 "clang-5.0.2;debian:buster"
38 "clang-6.0.0;debian:buster"
39 # "clang-6.0.1;debian:buster"
40 # "clang-7.0.0;debian:buster"
41 # "clang-7.0.1;debian:buster"
42 "clang-7.1.0;debian:buster"
43 "clang-8.0.0;debian:buster"
44 "clang-9.0.0;debian:buster"
45 "clang-10.0.0;debian:buster"
46 "clang-11.0.0;ubuntu:20.04"
47 "clang-12.0.0;ubuntu:20.04"
48 "clang-13.0.0;ubuntu:20.04"
49 "clang-14.0.0;debian:buster"
52 repository=${DOCKER_REPOSITORY:-marnav}
53 account=${DOCKER_ACCOUNT:-mariokonrad}
55 # Note: rename image name:
57 # docker tag "old-repo":"old-version" "new-repo":"new-version"
60 function build_image()
62 compiler=$1
63 base_image=$2
64 compiler_name=${compiler%-*}
65 compiler_version=${compiler#${compiler_name}-}
67 docker build \
68 --force-rm \
69 --build-arg compiler_version="${compiler_version}" \
70 --build-arg base_image="${base_image}" \
71 --tag "${account}/${repository}:${compiler}" \
72 --file "${SCRIPT_BASE}/docker/Dockerfile.${compiler_name}" \
73 "${SCRIPT_BASE}/docker"
76 function usage()
78 echo "usage: $(basename $0) compiler"
79 echo ""
80 echo " supported compilers:"
81 for v in ${supported_compilers[@]} ; do
82 IFS=";" read -r -a vec <<< "${v}"
83 local comp="${vec[0]}"
84 local dist="${vec[1]}"
86 echo " - ${comp} (${dist})"
87 done
88 echo ""
91 if [ $# -ne 1 ] ; then
92 usage
93 exit 1
96 for v in ${supported_compilers[@]} ; do
97 IFS=";" read -r -a vec <<< "${v}"
98 comp="${vec[0]}"
99 dist="${vec[1]}"
101 if [ "${comp}" == "$1" ] ; then
102 build_image ${comp} ${dist}
103 exit 0
105 done
106 echo "error: specified compiler not supported: $1"
107 exit 1