From 8a2ff64e70ca9fd16df21d418e9d54674013fe65 Mon Sep 17 00:00:00 2001
From: Bryan  BRANCOTTE <bryan.brancotte@pasteur.fr>
Date: Thu, 28 Sep 2023 10:18:12 +0200
Subject: [PATCH] Choose r ubuntu base

---
 .gitignore     |  4 +++-
 .gitlab-ci.yml | 17 +++++++++++++++--
 Dockerfile.r   |  4 +++-
 gobuild.sh     | 25 +++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 4 deletions(-)
 create mode 100755 gobuild.sh

diff --git a/.gitignore b/.gitignore
index e87b6e2..a2c1e3f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 R-*.tar.gz
-*.code-workspace
\ No newline at end of file
+*.code-workspace
+.Dockerfile.*
+#end of file
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 91d2b11..2ec9bf9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,11 @@ image: docker:24
 
 
 
+variables:
+  LATEST_UBUNTU_VERSION: "jammy"
+
+
+
 .build:
   stage: build
   before_script:
@@ -13,7 +18,11 @@ image: docker:24
       if [ "${LANGUAGE}" == "python" ]; then
         LANGUAGE_VERSION="${PYTHON_VERSION}"
       else
-        LANGUAGE_VERSION="${R_VERSION}"
+        if [ "${LATEST_UBUNTU_VERSION}" == "${UBUNTU_VERSION}" ]; then
+          LANGUAGE_VERSION="${R_VERSION}"
+        else
+          LANGUAGE_VERSION="${R_VERSION}-${UBUNTU_VERSION}"
+        fi
       fi
     # put both versions in a env var, to be used as tag
     - |
@@ -84,9 +93,13 @@ build_r:
     matrix:
       - LANGUAGE: ["r"]
         R_VERSION: [
-           "latest",
            "3.6.3",
            "4.2.3", 
+           "4.3.1", 
+        ]
+        UBUNTU_VERSION: [
+           "jammy",
+           "focal",
         ]
         SHINY_SERVER_VERSION: ["latest"]
 
diff --git a/Dockerfile.r b/Dockerfile.r
index 280b294..bf534bb 100644
--- a/Dockerfile.r
+++ b/Dockerfile.r
@@ -1,4 +1,4 @@
-FROM ubuntu:focal
+FROM ubuntu:${UBUNTU_VERSION}
 
 # define geographic location during R installation
 ENV TZ=Etc/UTC
@@ -33,6 +33,8 @@ RUN apt-get update \
         libtiff-dev \
         xorg-dev \
         libx11-dev \
+        tzdata \
+        git \
  && rm -rf /var/lib/apt/lists/*
 
 # Copy only this installation script so new R package won't invalidate it installation
diff --git a/gobuild.sh b/gobuild.sh
new file mode 100755
index 0000000..05afd7f
--- /dev/null
+++ b/gobuild.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+export DEFAULT_R_VERSION="4.3.1"
+export DEFAULT_UBUNTU_VERSION="jammy"
+export DEFAULT_LANGUAGE="r"
+export DEFAULT_SHINY_SERVER_VERSION="latest"
+
+export R_VERSION="${1:-$DEFAULT_R_VERSION}"
+export UBUNTU_VERSION="${2:-$DEFAULT_UBUNTU_VERSION}"
+export LANGUAGE="${3:-$DEFAULT_LANGUAGE}"
+export SHINY_SERVER_VERSION="${4:-$DEFAULT_SHINY_SERVER_VERSION}"
+
+echo ${R_VERSION}
+echo ${UBUNTU_VERSION}
+echo ${SHINY_SERVER_VERSION}
+echo ${LANGUAGE}
+
+export DOCKERFILE=".Dockerfile.$LANGUAGE.$R_VERSION.$UBUNTU_VERSION.$SHINY_SERVER_VERSION"
+
+envsubst < ./Dockerfile.$LANGUAGE > $DOCKERFILE
+docker build \
+  --build-arg R_VERSION \
+  --build-arg SHINY_SERVER_VERSION \
+  -f $DOCKERFILE \
+  .
-- 
GitLab