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 \ + .