From 12ffdc6c54437ac74620a27ce2cf27c93f18930b Mon Sep 17 00:00:00 2001 From: Jerred Shepherd Date: Thu, 9 Nov 2023 10:29:38 -0800 Subject: [PATCH 1/7] add Python to Package Manager images --- .github/workflows/build-prerelease.yaml | 1 - .github/workflows/build-release.yaml | 3 +- .github/workflows/lint.yaml | 1 - ci.Justfile | 12 ++++ docker-compose.yml | 2 +- hadolint.yaml | 2 + matrix-preview.json | 2 +- package-manager/.env | 2 + package-manager/Dockerfile.ubuntu1804 | 94 ------------------------- package-manager/Dockerfile.ubuntu2204 | 59 ++++------------ package-manager/Justfile | 4 ++ package-manager/NEWS.md | 5 ++ package-manager/README.md | 12 ++-- package-manager/docker-compose.test.yml | 2 + package-manager/test/goss.yaml | 21 +++++- 15 files changed, 68 insertions(+), 154 deletions(-) delete mode 100644 package-manager/Dockerfile.ubuntu1804 diff --git a/.github/workflows/build-prerelease.yaml b/.github/workflows/build-prerelease.yaml index fed12d32..ef895605 100644 --- a/.github/workflows/build-prerelease.yaml +++ b/.github/workflows/build-prerelease.yaml @@ -30,7 +30,6 @@ jobs: - {product: "workbench", type: "preview", os: "ubuntu2204", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: "connect", type: "daily", os: "ubuntu2204", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: "connect-content-init", type: "daily", os: "ubuntu2204", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - - {product: "package-manager", type: "daily", os: "ubuntu1804", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: "package-manager", type: "daily", os: "ubuntu2204", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: "r-session-complete", type: "daily", os: "ubuntu2204", r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: "r-session-complete", type: "daily", os: 'centos7', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.14", py-alternate: "3.8.15"} diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index d48dbc99..7146c69b 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -248,8 +248,7 @@ jobs: - {product: 'workbench', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.14", py-alternate: "3.8.15"} - {product: 'connect', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: 'connect-content-init', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - - {product: 'package-manager', os: 'ubuntu1804', r-primary: "4.2.0", r-alternate: "3.6.2", py-primary: "3.9.5", py-alternate: "3.8.10"} - - {product: 'package-manager', os: 'ubuntu2204', r-primary: "4.2.0", r-alternate: "3.6.2", py-primary: "3.9.5", py-alternate: "3.8.10"} + - {product: 'package-manager', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.17", py-alternate: "3.8.17"} - {product: 'r-session-complete', os: 'centos7', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.14", py-alternate: "3.8.15"} - {product: 'r-session-complete', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.14", py-alternate: "3.8.15"} - {product: 'workbench-for-microsoft-azure-ml', os: 'ubuntu2204', r-primary: "4.2.3", r-alternate: "4.1.3", py-primary: "3.9.14", py-alternate: "3.8.15"} diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 7877099c..c00fa3ff 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -23,7 +23,6 @@ jobs: - {product: 'workbench', os: 'ubuntu2204'} - {product: 'connect', os: 'ubuntu2204'} - {product: 'connect-content-init', os: 'ubuntu2204'} - - {product: 'package-manager', os: 'ubuntu1804'} - {product: 'package-manager', os: 'ubuntu2204'} - {product: 'r-session-complete', os: 'centos7'} - {product: 'r-session-complete', os: 'ubuntu2204'} diff --git a/ci.Justfile b/ci.Justfile index 68bc739b..ebcbdd3b 100644 --- a/ci.Justfile +++ b/ci.Justfile @@ -134,6 +134,12 @@ get-product-args $PRODUCT $OS $VERSION $USE_S3="false" $BRANCH=`git branch --sho else SRC_IMAGE_NAME="product-base-pro-dev" fi + elif [[ $PRODUCT == "package-manager" ]]; then + if [[ $BRANCH == "main" ]]; then + SRC_IMAGE_NAME="product-base" + else + SRC_IMAGE_NAME="product-base-dev" + fi fi if [[ "${OS}" == "centos7" ]]; then @@ -217,6 +223,12 @@ get-prerelease-args $TYPE $PRODUCT $OS $VERSION $BRANCH=`git branch --show`: else SRC_IMAGE_NAME="product-base-pro-dev" fi + elif [[ $PRODUCT == "package-manager" ]]; then + if [[ $BRANCH == "main" ]]; then + SRC_IMAGE_NAME="product-base" + else + SRC_IMAGE_NAME="product-base-dev" + fi fi if [[ "${OS}" == "centos7" ]]; then diff --git a/docker-compose.yml b/docker-compose.yml index 2a8098eb..398dfc6f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,7 +41,7 @@ services: container_name: rstudio-package-manager build: context: ./package-manager - dockerfile: "Dockerfile.${IMAGE_OS:-ubuntu1804}" + dockerfile: "Dockerfile.${IMAGE_OS:-ubuntu2204}" args: RSPM_VERSION: 2023.08.4-20 image: rstudio/rstudio-package-manager:2023.08.4 diff --git a/hadolint.yaml b/hadolint.yaml index 10066a69..bf071e06 100644 --- a/hadolint.yaml +++ b/hadolint.yaml @@ -4,6 +4,8 @@ ignored: - DL3008 # Suppresses warning for version pinning on yum installs. We currently do not practice this approach. - DL3033 + # Suppresses warning for version pinning on pip installs. We currently do not practice this approach. + - DL3013 # Suppresses info for too many consecutive RUN statements. Multiple consecutive RUN statements are often a conscious # design choice in our Dockerfiles, but we could consider condensing them in the future. - DL3059 diff --git a/matrix-preview.json b/matrix-preview.json index a639fa92..a1040b6e 100644 --- a/matrix-preview.json +++ b/matrix-preview.json @@ -3,7 +3,7 @@ {"product": "rstudio-workbench-preview", "dir": "workbench", "prefix": "RSW", "os": "bionic", "arch": "amd64", "version": "preview"}, {"product": "rstudio-connect-preview", "dir": "connect", "prefix": "RSC", "os": "bionic", "arch": "amd64", "version": "daily"}, {"product": "rstudio-connect-content-init-preview", "dir": "connect-content-init", "prefix": "RSC", "os": "bionic", "arch": "amd64", "version": "daily"}, - {"product": "rstudio-package-manager-preview", "dir": "package-manager", "prefix": "RSPM", "os": "bionic", "arch": "amd64", "version": "daily"}, + {"product": "rstudio-package-manager-preview", "dir": "package-manager", "prefix": "RSPM", "os": "jammy", "arch": "amd64", "version": "daily"}, {"product": "r-session-complete-preview", "tag_prefix": "bionic-", "dir": "r-session-complete", "os": "bionic", "arch": "amd64", "prefix": "RSW", "version": "daily"}, {"product": "r-session-complete-preview", "tag_prefix": "centos7-", "dir": "r-session-complete", "os": "centos7", "arch": "x86_64", "prefix": "RSW", "version": "daily"}, {"product": "r-session-complete-preview", "tag_prefix": "bionic-", "dir": "r-session-complete", "os": "bionic", "arch": "amd64", "prefix": "RSW", "version": "preview"}, diff --git a/package-manager/.env b/package-manager/.env index 0cd44ebc..b41ed04f 100644 --- a/package-manager/.env +++ b/package-manager/.env @@ -1,3 +1,5 @@ RSPM_VERSION=2023.08.4-20 R_VERSION=4.2.3 R_VERSION_ALT=4.1.3 +PYTHON_VERSION=3.9.17 +PYTHON_VERSION_ALT=3.8.17 diff --git a/package-manager/Dockerfile.ubuntu1804 b/package-manager/Dockerfile.ubuntu1804 deleted file mode 100644 index 448c3f80..00000000 --- a/package-manager/Dockerfile.ubuntu1804 +++ /dev/null @@ -1,94 +0,0 @@ -ARG R_VERSION=4.2.3 -FROM rstudio/r-base:${R_VERSION}-bionic -LABEL maintainer="RStudio Docker " - -ARG R_VERSION=4.2.3 - -# Locale configuration --------------------------------------------------------# -RUN localedef -i en_US -f UTF-8 en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 -ENV STARTUP_DEBUG_MODE 0 -ARG DEBIAN_FRONTEND=noninteractive -ARG TINI_VERSION=0.19.0 - -ENV PATH /opt/rstudio-pm/bin:$PATH - -# Upgrade/install packages ----------------------------------------------------# -RUN apt-get update --fix-missing \ - && apt-get upgrade -yq \ - && apt-get install -yq --no-install-recommends \ - ca-certificates \ - curl \ - dirmngr \ - gpg \ - gpg-agent \ - && rm -rf /var/lib/apt/lists/* - -# Runtime settings ------------------------------------------------------------# -ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64 /tini -ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64.asc /tini.asc -# Keys must be pulled using curl, gpg calls intermittently fail on 18.04 with "gpg: keyserver receive failed: Cannot assign requested address" -RUN gpg --update-trustdb \ - && curl -sL -o /tmp/tini-key.asc "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x6380dc428747f6c393feaca59a84159d7001a4e5" \ - && gpg --import /tmp/tini-key.asc \ - && rm /tmp/tini-key.asc \ - && gpg --batch --verify /tini.asc /tini \ - && chmod +x /tini \ - && ln -s /tini /usr/local/bin/tini - -# Add another R version -------------------------------------------------------# -ARG R_VERSION_ALT=4.1.3 -RUN apt-get update -qq && \ - curl -O https://cdn.rstudio.com/r/ubuntu-1804/pkgs/r-${R_VERSION_ALT}_1_amd64.deb && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y ./r-${R_VERSION_ALT}_1_amd64.deb && \ - rm -f ./r-${R_VERSION_ALT}_1_amd64.deb \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -# Download RStudio Package Manager ---------------------------------------------# -ARG RSPM_VERSION=2023.08.4-20 -ARG RSPM_DOWNLOAD_URL=https://cdn.rstudio.com/package-manager/deb/amd64 -# Keys must be pulled using curl, gpg calls intermittently fail on 18.04 with "gpg: keyserver receive failed: Cannot assign requested address" -RUN apt-get update --fix-missing \ - && apt-get install -y --no-install-recommends gdebi-core gpg dpkg-sig \ - && curl -O ${RSPM_DOWNLOAD_URL}/rstudio-pm_${RSPM_VERSION}_amd64.deb \ - # Pre 7/25/23 packages - && curl -sL -o /tmp/rstudio-key.asc "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xfe8564cff1ab93f1728645193f32ee77e331692f" \ - && gpg --import /tmp/rstudio-key.asc \ - && rm /tmp/rstudio-key.asc \ - # Post 7/25 packages - && curl -sL -o /tmp/posit-key.asc "https://keys.openpgp.org/vks/v1/by-fingerprint/8B65E5A107BBEFE3BA99C59751C0B5BB19F92D60" \ - && gpg --import /tmp/posit-key.asc \ - && rm /tmp/posit-key.asc \ - && dpkg-sig --verify rstudio-pm_${RSPM_VERSION}_amd64.deb \ - && RSTUDIO_INSTALL_NO_LICENSE_INITIALIZATION=1 gdebi -n rstudio-pm_${RSPM_VERSION}_amd64.deb \ - && rm rstudio-pm_${RSPM_VERSION}_amd64.deb \ - && apt-get purge -y gdebi-core dpkg-sig gpg gpg-agent \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ - && (ln -s /opt/rstudio-pm/bin/rspm /usr/local/bin/rspm || echo "/usr/local/bin/rspm symlink already exists") - -# Set default R version symlink -RUN ln -s /opt/R/${R_VERSION} /opt/R/default - -# Add run script and set permissions -------------------------------------------# -COPY --chmod=0775 startup.sh /usr/local/bin/startup.sh -RUN mkdir -p /var/run/rstudio-pm \ - && chmod +x /usr/local/bin/startup.sh \ - && chown rstudio-pm:rstudio-pm /usr/local/bin/startup.sh \ - && chown -R rstudio-pm:rstudio-pm /var/run/rstudio-pm - -USER rstudio-pm -COPY rstudio-pm.gcfg /etc/rstudio-pm/rstudio-pm.gcfg - -# Set up licensing to work in userspace mode. This will not prevent activating a -# license as root, but it is required to activate one as the non-root user at -# runtime. It's possible for this to fail and the trail will be considered over, -# in which case we can ignore it anyway. -RUN license-manager initialize --userspace || true - -ENTRYPOINT ["tini", "--"] -CMD ["/usr/local/bin/startup.sh"] diff --git a/package-manager/Dockerfile.ubuntu2204 b/package-manager/Dockerfile.ubuntu2204 index a6fc4966..75571e6d 100644 --- a/package-manager/Dockerfile.ubuntu2204 +++ b/package-manager/Dockerfile.ubuntu2204 @@ -1,70 +1,37 @@ ARG R_VERSION=4.2.3 -FROM rstudio/r-base:${R_VERSION}-jammy +ARG R_VERSION_ALT=4.1.3 +ARG PYTHON_VERSION=3.9.17 +ARG PYTHON_VERSION_ALT=3.8.17 +ARG SRC_IMAGE_NAME=product-base +ARG REGISTRY=ghcr.io +FROM ${REGISTRY}/rstudio/${SRC_IMAGE_NAME}:ubuntu2204-r${R_VERSION}_${R_VERSION_ALT}-py${PYTHON_VERSION}_${PYTHON_VERSION_ALT} LABEL maintainer="RStudio Docker " -ARG R_VERSION=4.2.3 +ARG PYTHON_VERSION=3.9.17 +ARG PYTHON_VERSION_ALT=3.8.17 # Locale configuration --------------------------------------------------------# -RUN localedef -i en_US -f UTF-8 en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 ENV STARTUP_DEBUG_MODE 0 -ARG DEBIAN_FRONTEND=noninteractive -ARG TINI_VERSION=0.19.0 ENV PATH /opt/rstudio-pm/bin:$PATH -# Upgrade/install packages ----------------------------------------------------# -RUN apt-get update --fix-missing \ - && apt-get upgrade -yq \ - && apt-get install -yq --no-install-recommends \ - ca-certificates \ - dirmngr \ - gpg \ - gpg-agent \ - && rm -rf /var/lib/apt/lists/* - -# Runtime settings ------------------------------------------------------------# -ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64 /tini -ADD https://cdn.rstudio.com/platform/tini/v${TINI_VERSION}/tini-amd64.asc /tini.asc -RUN gpg --update-trustdb \ - && gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \ - && gpg --batch --verify /tini.asc /tini \ - && chmod +x /tini \ - && ln -s /tini /usr/local/bin/tini - -# Add another R version -------------------------------------------------------# -ARG R_VERSION_ALT=4.1.3 -RUN apt-get update -qq && \ - curl -O https://cdn.rstudio.com/r/ubuntu-2204/pkgs/r-${R_VERSION_ALT}_1_amd64.deb && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y ./r-${R_VERSION_ALT}_1_amd64.deb && \ - rm -f ./r-${R_VERSION_ALT}_1_amd64.deb \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* +# Required Python packages ----------------------------------------------------# +RUN /opt/python/${PYTHON_VERSION}/bin/python3 -m pip install --no-cache-dir build virtualenv +RUN /opt/python/${PYTHON_VERSION_ALT}/bin/python3 -m pip install --no-cache-dir build virtualenv # Download RStudio Package Manager ---------------------------------------------# ARG RSPM_VERSION=2023.08.4-20 ARG RSPM_DOWNLOAD_URL=https://cdn.rstudio.com/package-manager/deb/amd64 -RUN apt-get update --fix-missing \ - && apt-get install -y --no-install-recommends ca-certificates gdebi-core gpg dpkg-sig \ - && curl -O ${RSPM_DOWNLOAD_URL}/rstudio-pm_${RSPM_VERSION}_amd64.deb \ +RUN curl -O ${RSPM_DOWNLOAD_URL}/rstudio-pm_${RSPM_VERSION}_amd64.deb \ # Pre 7/25/23 packages && gpg --keyserver keyserver.ubuntu.com --recv-keys 3F32EE77E331692F \ # Post 7/25 packages && gpg --keyserver keys.openpgp.org --recv-keys 51C0B5BB19F92D60 \ && dpkg-sig --verify rstudio-pm_${RSPM_VERSION}_amd64.deb \ - && RSTUDIO_INSTALL_NO_LICENSE_INITIALIZATION=1 gdebi -n rstudio-pm_${RSPM_VERSION}_amd64.deb \ + && RSTUDIO_INSTALL_NO_LICENSE_INITIALIZATION=1 apt-get install -y ./rstudio-pm_${RSPM_VERSION}_amd64.deb \ && rm rstudio-pm_${RSPM_VERSION}_amd64.deb \ - && apt-get purge -y gdebi-core dpkg-sig gpg gpg-agent \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ && (ln -s /opt/rstudio-pm/bin/rspm /usr/local/bin/rspm || echo "/usr/local/bin/rspm symlink already exists") -# Set default R version symlink -RUN ln -s /opt/R/${R_VERSION} /opt/R/default - # Add run script and set permissions -------------------------------------------# COPY --chmod=0775 startup.sh /usr/local/bin/startup.sh RUN mkdir -p /var/run/rstudio-pm \ diff --git a/package-manager/Justfile b/package-manager/Justfile index 7f99e5fc..5e2f692a 100644 --- a/package-manager/Justfile +++ b/package-manager/Justfile @@ -48,6 +48,8 @@ build OS=IMAGE_OS VERSION=RSPM_VERSION *TAGS="": --build-arg RSPM_VERSION="{{ VERSION }}" \ --build-arg R_VERSION="{{ R_VERSION }}" \ --build-arg R_VERSION_ALT="{{ R_VERSION_ALT }}" \ + --build-arg PYTHON_VERSION="{{ PYTHON_VERSION }}" \ + --build-arg PYTHON_VERSION_ALT="{{ PYTHON_VERSION_ALT }}" \ --file=./Dockerfile.$(just -f ../Justfile _parse-os {{OS}}) . # Test Package Manager image - just test rstudio/rstudio-package-manager:ubuntu2204-2022.07.2-11 2022.07.2-11 @@ -60,6 +62,8 @@ test TAG=`just _make-default-tag` VERSION=RSPM_VERSION CMD="": RSPM_LICENSE_SERVER="{{ RSPM_LICENSE_SERVER }}" \ R_VERSION="{{ R_VERSION }}" \ R_VERSION_ALT="{{ R_VERSION_ALT }}" \ + PYTHON_VERSION="{{ PYTHON_VERSION }}" \ + PYTHON_VERSION_ALT="{{ PYTHON_VERSION_ALT }}" \ docker-compose -f ./docker-compose.test.yml run sut {{ CMD }} # Test Package Manager image interactively - just test-i rstudio/rstudio-package-manager:ubuntu2204-2022.07.2-11 2022.07.2-11 diff --git a/package-manager/NEWS.md b/package-manager/NEWS.md index 419b0847..5a5ce144 100644 --- a/package-manager/NEWS.md +++ b/package-manager/NEWS.md @@ -1,3 +1,8 @@ +# 2023-11-13 +- Add Python +- Update R to 4.2.3 +- Deprecate Ubuntu 18.04 + # 2023-07-25 - Changed `rstudio-pm.gcfg` R version number behavior from statically defined to dynamically filled on build. diff --git a/package-manager/README.md b/package-manager/README.md index e396b11f..7b900e58 100644 --- a/package-manager/README.md +++ b/package-manager/README.md @@ -6,7 +6,6 @@ # Supported tags and respective Dockerfile links -* [`2023.08.4`, `bionic`, `ubuntu1804`, `bionic-2023.08.4`, `ubuntu1804-2023.08.4`](https://github.com/rstudio/rstudio-docker-products/blob/main/package-manager/Dockerfile.ubuntu1804) * [`jammy`, `ubuntu2204`, `jammy-2023.08.4`, `ubuntu2204-2023.08.4`](https://github.com/rstudio/rstudio-docker-products/blob/main/package-manager/Dockerfile.ubuntu2204) # What is RStudio Package Manager? @@ -50,7 +49,7 @@ export RSPM_LICENSE=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX docker run -it \ -p 4242:4242 \ -e RSPM_LICENSE=$RSPM_LICENSE \ - rstudio/rstudio-package-manager:ubuntu1804 + rstudio/rstudio-package-manager:ubuntu2204 ``` Open [http://localhost:4242](http://localhost:4242) to access RStudio Package Manager UI. @@ -60,8 +59,9 @@ Note that running the RStudio Package Manager Docker image requires a valid RStu This container includes: -1. One version of R -2. RStudio Package Manager +1. Two versions of R +2. Two versions of Python +3. RStudio Package Manager > NOTE: Package Manager is currently not very particular about R version. Changing the R version is rarely necessary. @@ -128,7 +128,7 @@ docker run -it \ -p 4242:4242 \ -v $PWD/package-manager/rstudio-pm.gcfg:/etc/rstudio-pm/rstudio-pm.gcfg \ -e RSPM_LICENSE=$RSPM_LICENSE \ - rstudio/rstudio-package-manager:ubuntu1804 + rstudio/rstudio-package-manager:ubuntu2204 # Run with persistent data and using an external configuration docker run -it \ @@ -136,7 +136,7 @@ docker run -it \ -v $PWD/data/rspm:/data \ -v $PWD/package-manager/rstudio-pm.gcfg:/etc/rstudio-pm/rstudio-pm.gcfg \ -e RSPM_LICENSE=$RSPM_LICENSE \ - rstudio/rstudio-package-manager:ubuntu1804 + rstudio/rstudio-package-manager:ubuntu2204 ``` Open [http://localhost:4242](http://localhost:4242) to access RStudio Package Manager UI. diff --git a/package-manager/docker-compose.test.yml b/package-manager/docker-compose.test.yml index 9d1b0bf1..d1279b98 100644 --- a/package-manager/docker-compose.test.yml +++ b/package-manager/docker-compose.test.yml @@ -10,6 +10,8 @@ services: - RSPM_VERSION - R_VERSION - R_VERSION_ALT + - PYTHON_VERSION + - PYTHON_VERSION_ALT - RSPM_LICENSE - RSPM_LICENSE_SERVER volumes: diff --git a/package-manager/test/goss.yaml b/package-manager/test/goss.yaml index 7b36cec2..f97cb4f0 100644 --- a/package-manager/test/goss.yaml +++ b/package-manager/test/goss.yaml @@ -32,6 +32,10 @@ file: exists: true contains: - "!Unable to initialize the configuration" + /opt/python/{{.Env.PYTHON_VERSION}}/bin/python: + exists: true + /opt/python/{{.Env.PYTHON_VERSION_ALT}}/bin/python: + exists: true # TODO: Ensure that this does _not_ exist in the future # /var/log/rstudio-pm.log: # exists: true @@ -49,7 +53,7 @@ command: "pgrep rstudio-pm": title: rspm_running exit-status: 0 - + # Ensure correct R version "/opt/R/{{ .Env.R_VERSION }}/bin/R --version": title: r_version_match @@ -57,10 +61,23 @@ command: stdout: [ "{{ .Env.R_VERSION }}" ] - "/opt/R/{{ .Env.R_VERSION_ALT }}/bin/R --version": title: r_version_alt_match exit-status: 0 stdout: [ "{{ .Env.R_VERSION_ALT }}" ] + + # Ensure correct python version + "/opt/python/{{ .Env.PYTHON_VERSION }}/bin/python --version": + title: python_version_matches + exit-status: 0 + stdout: [ + "{{ .Env.PYTHON_VERSION }}" + ] + "/opt/python/{{ .Env.PYTHON_VERSION_ALT }}/bin/python --version": + title: python_version_alt_matches + exit-status: 0 + stdout: [ + "{{ .Env.PYTHON_VERSION_ALT }}" + ] From 441d9e8a0317b1dac995c5b64cb50056907d479a Mon Sep 17 00:00:00 2001 From: Jonathan Yoder Date: Wed, 15 Nov 2023 07:42:02 -0500 Subject: [PATCH 2/7] Remove README Launcher References for PPM --- package-manager/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/package-manager/README.md b/package-manager/README.md index e396b11f..a7d095ed 100644 --- a/package-manager/README.md +++ b/package-manager/README.md @@ -80,17 +80,9 @@ a persistent volume. The included configuration file expects a persistent volume orchestration system to be available at `/var/lib/rstudio-pm`. Should you wish to move this to a different path, you can change the `Server.DataDir` option. -When changing `Server.DataDir` to a custom location, we also recommend setting `Server.LauncherDir` -to a consistent location within `Server.DataDir`, such as `{Server.DataDir}/launcher_internal`. -The default location of `Server.LauncherDir` depends on the container's hostname, which may be -different each time the container restarts. - ```ini [Server] DataDir = /mnt/rspm/data -; Use a consistent location for the Launcher directory. The default location -; is based on the hostname, and the hostname may be different in each container. -LauncherDir = /mnt/rspm/data/launcher_internal ``` ### Licensing From cbb324d6efdbcd15d99ca5e8545a5ccdf072685f Mon Sep 17 00:00:00 2001 From: Jonathan Yoder Date: Wed, 15 Nov 2023 07:44:00 -0500 Subject: [PATCH 3/7] Update NEWS.md --- package-manager/NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package-manager/NEWS.md b/package-manager/NEWS.md index 419b0847..62ad94e1 100644 --- a/package-manager/NEWS.md +++ b/package-manager/NEWS.md @@ -1,3 +1,6 @@ +# 2023-11-15 +- Removed Launcher references. Package manager no longer uses the Job Launcher for building git packages. + # 2023-07-25 - Changed `rstudio-pm.gcfg` R version number behavior from statically defined to dynamically filled on build. From 641b44c1783e79aa8ddecd7a587fbe5d90a6b2d5 Mon Sep 17 00:00:00 2001 From: Ian Pittwood Date: Thu, 16 Nov 2023 12:21:05 -0800 Subject: [PATCH 4/7] Fix and separate Workbench for GCW builds (#669) * Move Workbench for GCW back into its own build file * Switch push order on regions * Fix region name * Add file end line --- .github/workflows/build-release.yaml | 94 ---------------- .github/workflows/build-workbench-gcw.yaml | 104 ++++++++++++++++++ .../Justfile | 2 +- 3 files changed, 105 insertions(+), 95 deletions(-) create mode 100644 .github/workflows/build-workbench-gcw.yaml diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index d48dbc99..a291eada 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -358,97 +358,3 @@ jobs: gcp-json: '${{ secrets.GCP_ARTIFACT_REGISTRY_JSON }}' # End retry logic - - build-workbench-for-google-cloud-workstations: - needs: [ build-base, build-base-pro ] - runs-on: ubuntu-latest - name: build-workbench-for-google-cloud-workstations - - permissions: - contents: read - packages: write - - concurrency: - group: build-products-${{ matrix.config.product }}-${{ matrix.config.os }}-${{ github.ref }} - cancel-in-progress: true - - steps: - - name: Check Out Repo - cron main - if: github.event.schedule == '0 12 * * 1' - uses: actions/checkout@v3 - with: - ref: main - - - name: Check Out Repo - if: github.event.schedule != '0 12 * * 1' - uses: actions/checkout@v3 - - - name: Set up Just - uses: extractions/setup-just@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Get Version - id: get-version - run: | - VERSION=$(just workbench-for-google-cloud-workstations/get-version) - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT - - - name: Get build args - id: get-build-args - run: | - EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) - BUILD_ARGS=$(just workbench-for-google-cloud-workstations/get-build-args) - echo "BUILD_ARGS<<$EOF" >> $GITHUB_OUTPUT - echo "$BUILD_ARGS" >> $GITHUB_OUTPUT - echo "$EOF" >> $GITHUB_OUTPUT - - - name: Get tags - id: get-tags - run: | - IMAGE_TAGS=$(just workbench-for-google-cloud-workstations/get-build-tags) - echo "IMAGE_TAGS=$IMAGE_TAGS" >> $GITHUB_OUTPUT - - - name: Build/Test/Scan/Push base pro image - id: build1 - uses: ./.github/actions/build-test-scan-push - continue-on-error: true - with: - context: ./workbench-for-google-cloud-workstations - os: ubuntu2004 - product: workbench-for-google-cloud-workstations - image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} - build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} - push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 12 * * 1' }} - snyk-token: ${{ secrets.SNYK_TOKEN }} - snyk-org-id: ${{ secrets.SNYK_ORG_ID }} - ghcr-token: ${{ secrets.GITHUB_TOKEN }} - dockerhub-username: ${{ secrets.DOCKER_HUB_USERNAME }} - dockerhub-token: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - gcp-json: '${{ secrets.GCP_ARTIFACT_REGISTRY_JSON }}' - - # Begin retry logic - - - name: Wait 60s on failure before retrying - if: steps.build1.outcome == 'failure' - run: sleep 60 - - - name: Retry - Build/Test/Scan/Push base pro image - id: build2 - if: steps.build1.outcome == 'failure' - uses: ./.github/actions/build-test-scan-push - with: - context: ./workbench-for-google-cloud-workstations - os: ubuntu2004 - product: workbench-for-google-cloud-workstations - image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} - build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} - push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 12 * * 1' }} - snyk-token: ${{ secrets.SNYK_TOKEN }} - snyk-org-id: ${{ secrets.SNYK_ORG_ID }} - ghcr-token: ${{ secrets.GITHUB_TOKEN }} - dockerhub-username: ${{ secrets.DOCKER_HUB_USERNAME }} - dockerhub-token: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - gcp-json: '${{ secrets.GCP_ARTIFACT_REGISTRY_JSON }}' - - # End retry logic diff --git a/.github/workflows/build-workbench-gcw.yaml b/.github/workflows/build-workbench-gcw.yaml new file mode 100644 index 00000000..a225b6fb --- /dev/null +++ b/.github/workflows/build-workbench-gcw.yaml @@ -0,0 +1,104 @@ +on: + schedule: + - cron: '0 14 * * 1' # If updating this value, be sure to update logic for all `push-image` arguments! + push: + branches: + - main + - dev + - workbench-gcw-push-errors # TODO: remove this branch once we've fixed the push errors + pull_request: + +name: Workbench for GCW - Build, Test, Scan, and Push +jobs: + build-workbench-for-google-cloud-workstations: + runs-on: ubuntu-latest + name: build-workbench-for-google-cloud-workstations + + permissions: + contents: read + packages: write + + concurrency: + group: build-products-${{ matrix.config.product }}-${{ matrix.config.os }}-${{ github.ref }} + cancel-in-progress: true + + steps: + - name: Check Out Repo - cron main + if: github.event.schedule == '0 14 * * 1' + uses: actions/checkout@v3 + with: + ref: main + + - name: Check Out Repo + if: github.event.schedule != '0 14 * * 1' + uses: actions/checkout@v3 + + - name: Set up Just + uses: extractions/setup-just@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Get Version + id: get-version + run: | + VERSION=$(just workbench-for-google-cloud-workstations/get-version) + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + + - name: Get build args + id: get-build-args + run: | + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) + BUILD_ARGS=$(just workbench-for-google-cloud-workstations/get-build-args) + echo "BUILD_ARGS<<$EOF" >> $GITHUB_OUTPUT + echo "$BUILD_ARGS" >> $GITHUB_OUTPUT + echo "$EOF" >> $GITHUB_OUTPUT + + - name: Get tags + id: get-tags + run: | + IMAGE_TAGS=$(just workbench-for-google-cloud-workstations/get-build-tags) + echo "IMAGE_TAGS=$IMAGE_TAGS" >> $GITHUB_OUTPUT + + - name: Build/Test/Scan/Push base pro image + id: build1 + uses: ./.github/actions/build-test-scan-push + continue-on-error: true + with: + context: ./workbench-for-google-cloud-workstations + os: ubuntu2004 + product: workbench-for-google-cloud-workstations + image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} + build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} + push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' || github.ref == 'refs/heads/workbench-gcw-push-errors' }} + snyk-token: ${{ secrets.SNYK_TOKEN }} + snyk-org-id: ${{ secrets.SNYK_ORG_ID }} + ghcr-token: ${{ secrets.GITHUB_TOKEN }} + dockerhub-username: ${{ secrets.DOCKER_HUB_USERNAME }} + dockerhub-token: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + gcp-json: '${{ secrets.GCP_ARTIFACT_REGISTRY_JSON }}' + + # Begin retry logic + + - name: Wait 60s on failure before retrying + if: steps.build1.outcome == 'failure' + run: sleep 60 + + - name: Retry - Build/Test/Scan/Push base pro image + id: build2 + if: steps.build1.outcome == 'failure' + uses: ./.github/actions/build-test-scan-push + with: + context: ./workbench-for-google-cloud-workstations + os: ubuntu2004 + product: workbench-for-google-cloud-workstations + image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} + build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} + push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' || github.ref == 'refs/heads/workbench-gcw-push-errors' }} + snyk-token: ${{ secrets.SNYK_TOKEN }} + snyk-org-id: ${{ secrets.SNYK_ORG_ID }} + ghcr-token: ${{ secrets.GITHUB_TOKEN }} + dockerhub-username: ${{ secrets.DOCKER_HUB_USERNAME }} + dockerhub-token: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + gcp-json: '${{ secrets.GCP_ARTIFACT_REGISTRY_JSON }}' + + # End retry logic diff --git a/workbench-for-google-cloud-workstations/Justfile b/workbench-for-google-cloud-workstations/Justfile index fc4fd658..ce026a86 100644 --- a/workbench-for-google-cloud-workstations/Justfile +++ b/workbench-for-google-cloud-workstations/Justfile @@ -31,7 +31,7 @@ get-build-args: get-build-tags: #!/usr/bin/env bash set -eu - regions=("us" "asia" "europe" "us-central-1") + regions=("us-central1" "asia" "europe" "us") tag_array=() for region in "${regions[@]}"; do tag_array+=("$region-docker.pkg.dev/posit-images/cloud-workstations/workbench:${RSW_TAG_VERSION}") From 5e6e11a731b722a5a3f3c99529def03b584dfe97 Mon Sep 17 00:00:00 2001 From: Ian Pittwood Date: Mon, 11 Dec 2023 10:26:43 -0800 Subject: [PATCH 5/7] Upgrade Workbench for GCW to 2023.09.1 (#671) * Upgrade Workbench for GCW to 2023.09.1 * Remove testing lines * Update Python fix versions for Workbench for GCW --- .github/workflows/build-workbench-gcw.yaml | 5 ++--- workbench-for-google-cloud-workstations/.env | 12 ++++++------ .../Dockerfile.ubuntu2004 | 7 +++++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-workbench-gcw.yaml b/.github/workflows/build-workbench-gcw.yaml index a225b6fb..3ad22ff8 100644 --- a/.github/workflows/build-workbench-gcw.yaml +++ b/.github/workflows/build-workbench-gcw.yaml @@ -5,7 +5,6 @@ on: branches: - main - dev - - workbench-gcw-push-errors # TODO: remove this branch once we've fixed the push errors pull_request: name: Workbench for GCW - Build, Test, Scan, and Push @@ -69,7 +68,7 @@ jobs: product: workbench-for-google-cloud-workstations image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} - push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' || github.ref == 'refs/heads/workbench-gcw-push-errors' }} + push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' }} snyk-token: ${{ secrets.SNYK_TOKEN }} snyk-org-id: ${{ secrets.SNYK_ORG_ID }} ghcr-token: ${{ secrets.GITHUB_TOKEN }} @@ -93,7 +92,7 @@ jobs: product: workbench-for-google-cloud-workstations image-tags: ${{ steps.get-tags.outputs.IMAGE_TAGS }} build-args: ${{ steps.get-build-args.outputs.BUILD_ARGS }} - push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' || github.ref == 'refs/heads/workbench-gcw-push-errors' }} + push-image: ${{ github.ref == 'refs/heads/main' || github.event.schedule == '0 14 * * 1' }} snyk-token: ${{ secrets.SNYK_TOKEN }} snyk-org-id: ${{ secrets.SNYK_ORG_ID }} ghcr-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/workbench-for-google-cloud-workstations/.env b/workbench-for-google-cloud-workstations/.env index 1a28dfba..fbc18f37 100644 --- a/workbench-for-google-cloud-workstations/.env +++ b/workbench-for-google-cloud-workstations/.env @@ -1,10 +1,10 @@ -RSW_VERSION=2023.03.2+454.pro2 -RSW_TAG_VERSION=2023.03.2-454.pro2 -RSW_DOWNLOAD_URL=https://download2.rstudio.org/server/bionic/amd64 +RSW_VERSION=2023.09.1+494.pro2 +RSW_TAG_VERSION=2023.09.1-494.pro2 +RSW_DOWNLOAD_URL=https://download2.rstudio.org/server/focal/amd64 RSW_NAME=rstudio-workbench -PYTHON_VERSION=3.10.12 -PYTHON_VERSION_ALT=3.9.17 -PYTHON_VERSION_JUPYTER=3.10.12 +PYTHON_VERSION=3.10.13 +PYTHON_VERSION_ALT=3.9.18 +PYTHON_VERSION_JUPYTER=3.10.13 R_VERSION=4.2.3 R_VERSION_ALT=4.1.3 DRIVERS_VERSION=2023.05.0 diff --git a/workbench-for-google-cloud-workstations/Dockerfile.ubuntu2004 b/workbench-for-google-cloud-workstations/Dockerfile.ubuntu2004 index e23e9a91..144e3578 100644 --- a/workbench-for-google-cloud-workstations/Dockerfile.ubuntu2004 +++ b/workbench-for-google-cloud-workstations/Dockerfile.ubuntu2004 @@ -10,9 +10,9 @@ ARG PYTHON_VERSION_JUPYTER=3.10.12 ARG JUPYTERLAB_VERSION=3.6.5 ARG QUARTO_VERSION=1.3.340 ARG DRIVERS_VERSION=2023.05.0 -ARG RSW_VERSION=2023.03.2+454.pro2 +ARG RSW_VERSION=2023.09.1+494.pro2 ARG RSW_NAME=rstudio-workbench -ARG RSW_DOWNLOAD_URL=https://download2.rstudio.org/server/bionic/amd64 +ARG RSW_DOWNLOAD_URL=https://download2.rstudio.org/server/focal/amd64 ENV STARTUP_DEBUG_MODE 0 ENV RSW_LICENSE "" @@ -103,7 +103,10 @@ RUN apt-get update \ ### Install Workbench ### SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN curl -o rstudio-workbench.deb "${RSW_DOWNLOAD_URL}/${RSW_NAME}-${RSW_VERSION//+/-}-amd64.deb" \ + # Pre 7/25/23 packages && gpg --keyserver keyserver.ubuntu.com --recv-keys 3F32EE77E331692F \ + # Post 7/25 packages + && gpg --keyserver keys.openpgp.org --recv-keys 51C0B5BB19F92D60 \ && dpkg-sig --verify ./rstudio-workbench.deb \ && apt-get update \ && apt-get install -y --no-install-recommends ./rstudio-workbench.deb \ From fee2306be58341cc406154d223a65c6f797efcb7 Mon Sep 17 00:00:00 2001 From: Jacob Woliver Date: Mon, 18 Dec 2023 14:13:30 -0500 Subject: [PATCH 6/7] update version to 2023.12.0-13 --- Justfile | 3 +-- docker-compose.yml | 4 ++-- package-manager/.env | 2 +- package-manager/Dockerfile.ubuntu2204 | 2 +- package-manager/Justfile | 2 +- package-manager/README.md | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Justfile b/Justfile index ddb03dda..979fcec1 100644 --- a/Justfile +++ b/Justfile @@ -7,7 +7,7 @@ sed_vars := if os() == "macos" { "-i ''" } else { "-i" } BUILDX_PATH := "" RSC_VERSION := "2023.10.0" -RSPM_VERSION := "2023.08.4-20" +RSPM_VERSION := "2023.12.0-13" RSW_VERSION := "2023.09.1+494.pro2" DRIVERS_VERSION := "2023.05.0" @@ -126,7 +126,6 @@ update-rspm-versions: set -euxo pipefail sed {{ sed_vars }} "s/RSPM_VERSION=.*/RSPM_VERSION={{ RSPM_VERSION }}/g" \ package-manager/.env \ - package-manager/Dockerfile.ubuntu1804 \ package-manager/Dockerfile.ubuntu2204 sed {{ sed_vars }} "s/RSPM_VERSION:.*/RSPM_VERSION: {{ RSPM_VERSION }}/g" docker-compose.yml sed {{ sed_vars }} "s/rstudio\/rstudio-package-manager:.*/rstudio\/rstudio-package-manager:$(just _get-clean-version {{ RSPM_VERSION }})/g" docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml index 398dfc6f..d47a75f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,8 +43,8 @@ services: context: ./package-manager dockerfile: "Dockerfile.${IMAGE_OS:-ubuntu2204}" args: - RSPM_VERSION: 2023.08.4-20 - image: rstudio/rstudio-package-manager:2023.08.4 + RSPM_VERSION: 2023.12.0-13 + image: rstudio/rstudio-package-manager:2023.12.0 environment: RSPM_LICENSE: ${RSPM_LICENSE} LICENSE_SERVER: ${RSPM_LICENSE_SERVER} diff --git a/package-manager/.env b/package-manager/.env index b41ed04f..c868272f 100644 --- a/package-manager/.env +++ b/package-manager/.env @@ -1,4 +1,4 @@ -RSPM_VERSION=2023.08.4-20 +RSPM_VERSION=2023.12.0-13 R_VERSION=4.2.3 R_VERSION_ALT=4.1.3 PYTHON_VERSION=3.9.17 diff --git a/package-manager/Dockerfile.ubuntu2204 b/package-manager/Dockerfile.ubuntu2204 index 75571e6d..530f3317 100644 --- a/package-manager/Dockerfile.ubuntu2204 +++ b/package-manager/Dockerfile.ubuntu2204 @@ -20,7 +20,7 @@ RUN /opt/python/${PYTHON_VERSION}/bin/python3 -m pip install --no-cache-dir buil RUN /opt/python/${PYTHON_VERSION_ALT}/bin/python3 -m pip install --no-cache-dir build virtualenv # Download RStudio Package Manager ---------------------------------------------# -ARG RSPM_VERSION=2023.08.4-20 +ARG RSPM_VERSION=2023.12.0-13 ARG RSPM_DOWNLOAD_URL=https://cdn.rstudio.com/package-manager/deb/amd64 RUN curl -O ${RSPM_DOWNLOAD_URL}/rstudio-pm_${RSPM_VERSION}_amd64.deb \ # Pre 7/25/23 packages diff --git a/package-manager/Justfile b/package-manager/Justfile index 5e2f692a..7277b485 100644 --- a/package-manager/Justfile +++ b/package-manager/Justfile @@ -6,7 +6,7 @@ IMAGE_PREFIX := "rstudio-" PRODUCT := "package-manager" IMAGE_OS := "ubuntu2204" -RSPM_VERSION := "2023.08.4-20" +RSPM_VERSION := "2023.12.0-13" RSPM_LICENSE := "" RSPM_LICENSE_SERVER := "" diff --git a/package-manager/README.md b/package-manager/README.md index bb23f479..824a9dd2 100644 --- a/package-manager/README.md +++ b/package-manager/README.md @@ -6,7 +6,7 @@ # Supported tags and respective Dockerfile links -* [`jammy`, `ubuntu2204`, `jammy-2023.08.4`, `ubuntu2204-2023.08.4`](https://github.com/rstudio/rstudio-docker-products/blob/main/package-manager/Dockerfile.ubuntu2204) +* [`jammy`, `ubuntu2204`, `jammy-2023.12.0`, `ubuntu2204-2023.12.0`](https://github.com/rstudio/rstudio-docker-products/blob/main/package-manager/Dockerfile.ubuntu2204) # What is RStudio Package Manager? From 7354f1967abb75067a6b7bc9619971c649eb4bf3 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 18 Dec 2023 15:06:31 -0800 Subject: [PATCH 7/7] Bump Connect to version 2023.12.0 --- Justfile | 2 +- connect-content-init/Dockerfile.ubuntu2204 | 2 +- connect-content-init/Justfile | 2 +- connect-content-init/README.md | 6 +++--- connect/.env | 2 +- connect/Dockerfile.ubuntu2204 | 2 +- connect/Justfile | 2 +- connect/README.md | 2 +- docker-compose.yml | 4 ++-- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Justfile b/Justfile index 979fcec1..41040953 100644 --- a/Justfile +++ b/Justfile @@ -6,7 +6,7 @@ sed_vars := if os() == "macos" { "-i ''" } else { "-i" } BUILDX_PATH := "" -RSC_VERSION := "2023.10.0" +RSC_VERSION := "2023.12.0" RSPM_VERSION := "2023.12.0-13" RSW_VERSION := "2023.09.1+494.pro2" diff --git a/connect-content-init/Dockerfile.ubuntu2204 b/connect-content-init/Dockerfile.ubuntu2204 index f06de9c9..ad845539 100644 --- a/connect-content-init/Dockerfile.ubuntu2204 +++ b/connect-content-init/Dockerfile.ubuntu2204 @@ -10,7 +10,7 @@ RUN apt-get update && \ apt-get install -y --no-install-recommends ca-certificates curl && \ rm -rf /var/lib/apt/lists/* -ARG RSC_VERSION=2023.10.0 +ARG RSC_VERSION=2023.12.0 SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN mkdir -p /rsc-staging && \ RSC_VERSION_URL=$(echo -n "${RSC_VERSION}" | sed 's/+/%2B/g') && \ diff --git a/connect-content-init/Justfile b/connect-content-init/Justfile index 8b7f08e2..01bcf171 100644 --- a/connect-content-init/Justfile +++ b/connect-content-init/Justfile @@ -6,7 +6,7 @@ IMAGE_PREFIX := "rstudio-" PRODUCT := "connect-content-init" IMAGE_OS := "ubuntu2204" -RSC_VERSION := "2023.10.0" +RSC_VERSION := "2023.12.0" RSC_TAG_SAFE_VERSION := replace(RSC_VERSION, "+", "-") RSC_LICENSE := "" diff --git a/connect-content-init/README.md b/connect-content-init/README.md index cdd69831..60702b82 100644 --- a/connect-content-init/README.md +++ b/connect-content-init/README.md @@ -9,7 +9,7 @@ # Supported tags and respective Dockerfile links -* [`jammy`, `ubuntu2204`, `jammy-2023.10.0`, `ubuntu2204-2023.10.0`](https://github.com/rstudio/rstudio-docker-products/blob/main/connect/Dockerfile.2204) +* [`jammy`, `ubuntu2204`, `jammy-2023.12.0`, `ubuntu2204-2023.12.0`](https://github.com/rstudio/rstudio-docker-products/blob/main/connect/Dockerfile.2204) # RStudio Connect Content Init Container @@ -31,7 +31,7 @@ The version of the release package to use can be overridden with the `RSC_VERSION` build arg. ```console -just build ubuntu2204 2023.10.0 +just build ubuntu2204 2023.12.0 ``` ## Testing @@ -56,7 +56,7 @@ just test You can see the different layers that make up the image: ```console -docker history rstudio/rstudio-connect-content-init-preview:2023.10.0-dev-326 +docker history rstudio/rstudio-connect-content-init-preview:2023.12.0-dev-326 ``` NOTE: almost all the image size is pandoc. diff --git a/connect/.env b/connect/.env index 084103b3..d5a83327 100644 --- a/connect/.env +++ b/connect/.env @@ -1,4 +1,4 @@ -RSC_VERSION=2023.10.0 +RSC_VERSION=2023.12.0 R_VERSION=4.2.3 R_VERSION_ALT=4.1.3 PYTHON_VERSION=3.9.17 diff --git a/connect/Dockerfile.ubuntu2204 b/connect/Dockerfile.ubuntu2204 index 6f6f3978..0bffaf22 100644 --- a/connect/Dockerfile.ubuntu2204 +++ b/connect/Dockerfile.ubuntu2204 @@ -13,7 +13,7 @@ ARG R_VERSION=4.2.3 ARG R_VERSION_ALT=4.1.3 ARG PYTHON_VERSION=3.9.17 ARG PYTHON_VERSION_ALT=3.8.17 -ARG RSC_VERSION=2023.10.0 +ARG RSC_VERSION=2023.12.0 SHELL [ "/bin/bash", "-o", "pipefail", "-c"] RUN apt-get update --fix-missing \ && apt-get install -yq --no-install-recommends \ diff --git a/connect/Justfile b/connect/Justfile index a5cc999b..4d30c08a 100644 --- a/connect/Justfile +++ b/connect/Justfile @@ -6,7 +6,7 @@ IMAGE_PREFIX := "rstudio-" PRODUCT := "connect" IMAGE_OS := "ubuntu2204" -RSC_VERSION := "2023.10.0" +RSC_VERSION := "2023.12.0" RSC_LICENSE := "" RSC_LICENSE_SERVER := "" diff --git a/connect/README.md b/connect/README.md index 18d4ba00..75f8352b 100644 --- a/connect/README.md +++ b/connect/README.md @@ -7,7 +7,7 @@ # Supported tags and respective Dockerfile links -* [`jammy`, `ubuntu2204`, `jammy-2023.10.0`, `ubuntu2204-2023.10.0`](https://github.com/rstudio/rstudio-docker-products/blob/main/connect/Dockerfile.2204) +* [`jammy`, `ubuntu2204`, `jammy-2023.12.0`, `ubuntu2204-2023.12.0`](https://github.com/rstudio/rstudio-docker-products/blob/main/connect/Dockerfile.2204) # What is Posit Connect? diff --git a/docker-compose.yml b/docker-compose.yml index d47a75f5..8d7c6658 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,8 +25,8 @@ services: context: ./connect dockerfile: "Dockerfile.${IMAGE_OS:-ubuntu1804}" args: - RSC_VERSION: 2023.10.0 - image: rstudio/rstudio-connect:2023.10.0 + RSC_VERSION: 2023.12.0 + image: rstudio/rstudio-connect:2023.12.0 privileged: true environment: RSC_LICENSE: ${RSC_LICENSE}