From ef8cd1b38da90ad1bf9154e486fd8d46c3aaf2bd Mon Sep 17 00:00:00 2001
From: "R.K.Garcia" <rayg@ssec.wisc.edu>
Date: Mon, 12 Sep 2022 14:28:05 +0000
Subject: [PATCH] separate out gcc build stage for dev uses

---
 Dockerfile        |  4 +++-
 build-and-push.sh |  4 +++-
 build-gcc.sh      | 10 ++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100755 build-gcc.sh

diff --git a/Dockerfile b/Dockerfile
index 56755b76..11ce93b4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
 # docker build --build-arg BORT=develop . -f shellb3-cspp-py3.Dockerfile -t shellb3-cspp-py3:latest
 # docker run -e SHELLB3_ARCHIVE_DIR=/dock -it --rm -v $HOME/dock:/dock -w /opt/shellb3-cspp-py3/ShellB3 shellb3-cspp-py3 /bin/bash -l -c "unset LANG; bash shallbethree.sh bin_dist"
-FROM centos:7
+FROM centos:7 as gcc
 RUN yum -y install gcc-gfortran gcc-c++ unzip perl patch byacc bison flex glibc-devel.i686 glibc-devel.x86_64 xz epel-release wget make bzip2 xz automake autoconf m4 which
 RUN yum -y install git git-lfs
 RUN test -d /opt || mkdir /opt
@@ -15,6 +15,8 @@ ARG TRIM=cspp
 ENV PORTABLESHELLB3=true
 ENV MAKEFLAGS=-j40
 RUN ./shallbethree.sh mk_gcc11
+
+FROM gcc as sb3
 ARG LINUXCPUFLAGS="-march=ivybridge -fPIC"
 ENV LINUXCPUFLAGS="${LINUXCPUFLAGS}"
 # numcodecs will break on avx2 build when ivybridge arch is forced
diff --git a/build-and-push.sh b/build-and-push.sh
index 234387bd..b4ccef5f 100755
--- a/build-and-push.sh
+++ b/build-and-push.sh
@@ -1,7 +1,9 @@
 #!/bin/bash -e
+export REVNUM=GIT$(git rev-parse --verify HEAD --short)
+
 time docker build -t shellb3:latest \
     -t gitlab.ssec.wisc.edu:5555/cspp/buildbucket/shellb3/shellb3-centos7-gcc11-cspp-py3:r$REVNUM \
-    --build-arg REVNUM=GIT$(git rev-parse --verify HEAD --short) \
+    --build-arg REVNUM=$REVNUM \
     -f Dockerfile .
 
 docker push gitlab.ssec.wisc.edu:5555/cspp/buildbucket/shellb3/shellb3-centos7-gcc11-cspp-py3:r$REVNUM
diff --git a/build-gcc.sh b/build-gcc.sh
new file mode 100755
index 00000000..ae94ed98
--- /dev/null
+++ b/build-gcc.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -e
+export REVNUM=GIT$(git rev-parse --verify HEAD --short)
+
+time docker build -t shellb3-gcc:latest \
+    -t gitlab.ssec.wisc.edu:5555/cspp/buildbucket/shellb3/shellb3-gcc11:r$REVNUM \
+    --build-arg REVNUM=$REVNUM \
+    --target gcc \
+    -f Dockerfile .
+
+echo >&2 "==> gitlab.ssec.wisc.edu:5555/cspp/buildbucket/shellb3/shellb3-gcc11:r$REVNUM aka shellb3-gcc:latest"
\ No newline at end of file
-- 
GitLab