Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jammy and some package updates for it #356

Merged
merged 2 commits into from
Sep 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,15 @@ jobs:
run: echo "matrix=$(ls -1 -d packages/* | grep -v gsl | tr '\n' '\0' | xargs -0 -n 1 basename | jq -Rsc '. / "\n" - [""]')" >> $GITHUB_OUTPUT

test-package:
name: ${{ matrix.stack }}
name: ${{ matrix.stack }} on ${{ matrix.os }}
needs: list-tests
runs-on: ubuntu-latest
strategy:
matrix:
stack: ${{ fromJSON(needs.list-tests.outputs.matrix) }}
os: [focal, jammy]
container:
image: rstudio/shinyapps-package-dependencies:focal
image: rstudio/shinyapps-package-dependencies:${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- run: ./test ${{ matrix.stack }}
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## September 22nd 2023

### Added
* Dockerfile and `make` / CI configurations for an Ubuntu jammy (22.04)-based environment.

### UPDATED
* Updated packages as necessary to support jammy as a base OS.
* `dockxtractr` is available in jammy, but the installation currently supports .docx only, not .doc.

### REMOVED
* `magick` no longer needs any extra packages installed to function properly.
* `convertGraph` was removed from CRAN and has only one archived release from 2016, so is not being supported in this repository.

## March 15th 2021

### UPDATED
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Steps
=====
1. [Fork](https://help.github.com/articles/fork-a-repo) the repository on Github
2. Create a named feature branch (like `add_package_x_support`)
3. Write your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package))
4. Write tests for your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package))
3. Write your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package))
4. Write tests for your change ([see next section below](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md#how-to-add-system-dependency-support-for-an-r-package))
5. Run the tests, ensuring they all pass
6. Submit a [Pull Request](https://help.github.com/articles/creating-a-pull-request) using Github

Expand Down
1 change: 0 additions & 1 deletion Dockerfile.focal
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
FROM ubuntu:focal
MAINTAINER RStudio Docker <[email protected]>

# update apt & install packages
RUN apt-get update -qq && \
Expand Down
126 changes: 126 additions & 0 deletions Dockerfile.jammy
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
FROM ubuntu:jammy

# Configure apt-get to use the mirror in us-east-1 instead of the Docker default of archive.ubuntu.com
RUN sed -i "s/archive.ubuntu.com/us-east-1.ec2.archive.ubuntu.com/g" /etc/apt/sources.list

# update apt & install packages
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
cmake \
curl \
git \
gnupg \
libboost-all-dev \
libcurl4-openssl-dev \
locales \
lsb-release \
openssh-client \
protobuf-compiler \
sudo && \
rm -rf /var/lib/apt/lists/*

# add R apt repository
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0x51716619e084dab9 && \
echo "deb http://cran.rstudio.com/bin/linux/ubuntu jammy-cran40/" >> /etc/apt/sources.list.d/cran-rstudio.list

# Ensure FreeTDS is added to unixodbc upon installation
RUN echo tdsodbc freetds/addtoodbc boolean true | debconf-set-selections

# Install libraries & database related packages separately to break up the layers
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
gdebi-core \
jags \
libaio1 \
libatlas3-base \
libcairo2 \
libcairo2-dev \
libev-dev \
libfftw3-dev \
libgdal-dev \
libgraphviz-dev \
libgsl0-dev \
libmagick++-dev \
libmysqlclient21 \
libmysqlclient-dev \
libnetcdf-dev \
libpcre2-dev \
libprocps-dev \
libproj-dev \
libprotoc-dev \
libquantlib0-dev \
libsasl2-dev \
libssh-dev \
libsqliteodbc \
libxml2-dev \
libxt-dev \
libxt6 \
odbc-postgresql \
tdsodbc \
unixodbc \
unixodbc-dev \
wget \
zip && \
rm -rf /var/lib/apt/lists/*

# Install the RStudio Professional Drivers (includes mysql drivers)
RUN wget -q https://cdn.rstudio.com/drivers/7C152C12/installer/rstudio-drivers_2023.05.0_amd64.deb && \
gdebi -n rstudio-drivers_2023.05.0_amd64.deb && \
cat /opt/rstudio-drivers/odbcinst.ini.sample >> /etc/odbcinst.ini && \
rm rstudio-drivers_2023.05.0_amd64.deb

# Install JDK and Cargo separately to avoid the recommended packages
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openjdk-11-jdk cargo && \
rm -rf /var/lib/apt/lists/*

RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
python3-dev \
python3-pip \
python3-venv \
python3-virtualenv && \
rm -rf /var/lib/apt/lists/*

# Install Julia
RUN wget -q https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.1-linux-x86_64.tar.gz && \
tar -C /usr/local -zxf julia-1.9.1-linux-x86_64.tar.gz && \
ln -s /usr/local/julia-1.9.1/bin/julia /usr/local/bin/julia && \
rm julia-1.9.1-linux-x86_64.tar.gz

# Install of texlive. Use --no-install-recommends to avoid installing ~750MB of documentation
RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
texlive-full && \
rm -rf /var/lib/apt/lists/*


# add in the less secure openssl config file
# End-user applications can optionally reference this file to allow connection to less secure systems.
# https://community.rstudio.com/t/rmysql-to-mysql-database-on-aws-ssl-connection-error-after-deploying/100676
COPY insecure-openssl.cnf /etc/ssl/insecure-openssl.cnf

RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive TZ='Etc/UTC' apt-get install tzdata && \
apt-get install -s r-base-core r-base-dev | sed -e "/The following additional packages will be installed/,/^\w/!d;//d" -e "s/\br-.*\b//g" | xargs apt-get install -y

# set default locale
RUN update-locale --reset LANG=C.UTF-8

# set a non-default global location for Renviron.site.
# This would typically be found at $R_HOME/etc/Renviron.site, but we'd like it not to be a layer in the per-R version images.
# https://stat.ethz.ch/R-manual/R-devel/library/base/html/Startup.html
ENV R_ENVIRON /etc/R/Renviron.site
COPY Renviron.site /etc/R/Renviron.site

ARG R_VERSION=4.3.1

# Install R
RUN wget -q https://cdn.rstudio.com/r/ubuntu-2204/R-${R_VERSION}-ubuntu-2204.tar.gz -O /tmp/R-${R_VERSION}.tar.gz && \
mkdir -p /opt/R && \
tar zx -C /opt/R -f /tmp/R-${R_VERSION}.tar.gz && \
ln -s /opt/R/${R_VERSION}/bin/R /usr/bin/R && \
ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/bin/Rscript && \
ln -s /opt/R/${R_VERSION}/lib/R /usr/lib/R && \
rm /tmp/R-${R_VERSION}.tar.gz
19 changes: 10 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
PACKAGE_DIRS := $(wildcard packages/*)
PACKAGES := $(notdir ${PACKAGE_DIRS})
PACKAGE_TESTS := $(PACKAGES:%=test-%)
R_VERSION := 4.2.2
R_VERSION := 4.3.1

# Docker image is built on Docker Hub https://hub.docker.com/repository/docker/rstudio/shinyapps-package-dependencies/
docker-build-%:
docker build -t rstudio/shinyapps-package-dependencies:$* --build-arg R_VERSION=$(R_VERSION) -f Dockerfile.$* .

test-xenial-%:
docker run --rm --name spd-xenial-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:xenial /shinyapps/test $*

test-all-xenial:
docker run --rm --name spd-xenial -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:xenial /shinyapps/test

test-focal-%:
docker run --rm --name spd-focal-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:focal /shinyapps/test $*

test-all-focal:
docker run --rm --name spd-focal -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:focal /shinyapps/test

test-all: test-all-focal test-all-xenial
test-jammy-%:
docker run --rm --name spd-jammy-$* -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:jammy /shinyapps/test $*

test-all-jammy:
docker run --rm --name spd-jammy -v $(CURDIR):/shinyapps rstudio/shinyapps-package-dependencies:jammy /shinyapps/test


test-all: test-all-focal test-all-jammy

.PHONY: test-all-focal test-all-xenial
.PHONY: test-all-focal test-all-jammy
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Some R packages require other software and libraries to be installed on the host
function. This repository is used in [shinyapps.io](https://www.shinyapps.io/) to install those dependencies if a
user's shinyapp utilizes an R package that requires other libraries/software to be install.

To contribute to this repository, read [CONTRIBUTING.md](https://github.com/rstudio/shinyapps-package-dependencies/blob/master/CONTRIBUTING.md)
To contribute to this repository, read [CONTRIBUTING.md](https://github.com/rstudio/shinyapps-package-dependencies/blob/main/CONTRIBUTING.md)

If you'd like to request the addition of support of a specific R package, [open a github issue](https://github.com/rstudio/shinyapps-package-dependencies/issues).

Expand Down
4 changes: 4 additions & 0 deletions Renviron.site
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
LANG=C.UTF-8

# Otherwise timedatectl will get called which leads to 'no systemd' inside Docker
TZ=UTC
Loading