diff --git a/.gitignore b/.gitignore
index e87b6e210118aa170ef7cee2670d7739fa708980..a2c1e3f07eaa1f95de5d55f8222cdeeab27d96bd 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 91d2b11defe2ca3a962c0cb480af5e9266fa54a6..2ec9bf9e6ac2aa0951a3a01800e2c41a1d67315e 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 280b294e49565812d3d1017046430b20e12ba0a7..bf534bbd465325f22ff0a52d8742dff7ca02106a 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 0000000000000000000000000000000000000000..05afd7fae6d1e33360ea250c2640ddb6e1833980
--- /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 \
+  .