Skip to content

Gridium/mro-docker

 
 

Repository files navigation

Pulling from AWS ECR

All Gridium Docker images are hosted in the AWS container registry. Using aws cli v2, the login command is:

export REGION='us-east-1'
export AWS_ECR_URL='634855895757.dkr.ecr.us-east-1.amazonaws.com'
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $AWS_ECR_URL
docker pull 634855895757.dkr.ecr.us-east-1.amazonaws.com/mro-docker:4.0.2

There is a separate ECR with prod images, but these are likely the same. Pushing to prod is probably easiest from the ops server but can be done locally by replacing the variables above.

Updating to a new version

This repo is a fork of https://github.com/nuest/mro-docker. To upgrade, first syncing this repo with the upstream repo to get the new version.

Update Dockerfile to remove EULA (see https://github.com/Gridium/mro-docker-v1/commit/521f10b02044744ed9d14e0e9274960497f2fa54)

build the image:

export VERSION=4.0.2
cd $VERSION
docker build -t gridium/mro-docker:dev .

push to dev ECR; set AWS profile for dev in env

export REGION='us-east-1'
export AWS_ECR_URL='634855895757.dkr.ecr.us-east-1.amazonaws.com'
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $AWS_ECR_URL
docker tag gridium/mro-docker:dev $AWS_ECR_URL/mro-docker:$VERSION
docker push $AWS_ECR_URL/mro-docker:$VERSION
export REGION='us-west-1'
export AWS_ECR_URL='891208296108.dkr.ecr.us-west-1.amazonaws.com'
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $AWS_ECR_URL
docker tag gridium/mro-docker:dev $AWS_ECR_URL/mro-docker:$VERSION
docker push $AWS_ECR_URL/mro-docker:$VERSION

(General info from the forked repo follows)

A Docker image for Microsoft R Open

Docker Automated build Actions Status

Microsoft R Open, formerly known as Revolution R Open, is an "enhanced R distribution". You can use this Docker container to give MRO a quick try, i.e. without any impact on your local system, or to run MRO in an online Docker infrastructure.

Homepage: https://mran.microsoft.com/open

For plain R Docker images see Rocker. The Rocker images were a great help in creating the MRO images.

MRO focusses on speed and reproducibility.

By default, packages are not installed from main CRAN, but from a CRAN repository snapshot. For more information see https://mran.microsoft.com/documents/rro/reproducibility. MRO promises better speed by using special multi-threaded math libraries, replacing default R's BLAS/LAPACK libraries.

Important: By running this container you accept the MKL and MRO licenses.

Image metadata can be explored at Microbadger: https://microbadger.com/images/nuest/mro

Run container

docker run --user docker nuest/mro

This downloads the latest build of the image from Docker Hub. In the container, R is automatically started. When you exit R, the container is automatically stopped.

Optionally you can use tags for specific versions of MRO and execute a demo script:

docker run -it --rm nuest/mro:4.0.2

# in R
> source("demo.R")

Alternatively, you can start regular bash (you can skip the --user docker if root rights are needed in the container):

docker run -it --user docker mro /bin/bash

To work with your own data, simply mount a directory on the host computer to the container, see the Docker documentation on volumes.

You can install packages etc. in the R session as usual, though for reproducibility it is strongly recommended to do this only in the Dockerfile.

By default, the licenses and terms of use will printed when you start a container, because you had no chance to acknowledge them before downloading the image. If you want to disable the license printing, you can override the default R command and use one of these options, which will disable the license output (in addition to the options main effect): -q, --silent, --quiet, --slave.

$ docker run -it --rm mro:3.5.3 R --quiet
>

RStudio with R 4.0.2

Based on 4.0.2-verse image below, this variant provides RStudio.

docker build --tag mro:4.0.2-rstudio ./4.0.2-rstudio
docker run -p 8787:8787 -e PASSWORD=mro mro:4.0.2-rstudio

Go to http://localhost:8787 and enter username/password rstudio/mro.

4.0.2-verse

A copycat of the rocker/verse image, installing tidyverse and other often used packages, and adding R Markdown authoring tools (LaTeX etc.); based on the 4.0.2 image below.

docker build -t mro:4.0.2-verse 4.0.2-verse

4.0.2

Microsoft R Open 4.0.2 is based on R-4.0.2. The default CRAN mirror has been updated to point to the fixed CRAN repository snapshot from Jul 16, 2020. release notes

The base image is Ubuntu 18.04. See also MRO 4.0.2 documentation.

docker build -t mro:4.0.2 ./4.0.2

3.5.3

Microsoft R Open 3.5.3 is based on R-3.5.3. The default CRAN mirror has been updated to point to the fixed CRAN repository snapshot from Apr 15, 2019. release notes

The base image is Ubuntu 18.04. This is also the first MRO image with Rcpp preinstalled. See also MRO 3.5.3 documentation.

cd 3.5.3
docker build -t mro:3.5.3 .

3.5.3-verse

A copycat of the rocker/verse image, installing tidyverse and other often used packages, and adding R Markdown authoring tools (LaTeX etc.).

# if using only local builds:
#docker tag mro:3.5.3 nuest/mro:3.5.3

cd 3.5.3-verse
docker build -t mro:3.5.3-verse .

3.5.0

Microsoft R Open 3.5.0 is based on R-3.5.0. The default CRAN mirror has been updated to point to the fixed CRAN repository snapshot from June 01, 2018. release notes

The base image is Ubuntu 16.04. See also MRO 3.5.0 documentation.

cd 3.5.0
docker build -t mro:3.5.0 .

3.4.4

The CRAN repository points to a snapshot from May 1, 2017. This means that every user of Microsoft R Open has access to the same set of CRAN package versions. source

The base image is Ubuntu 16.04. See also MRO 3.4.4 documentation.

Build the image:

cd 3.4.4
docker build -t mro:3.4.4 .

3.2.5

See installation instructions: https://mran.microsoft.com/archives/install-doc/mro-3.2.5/ The base image is Ubuntu 14.04. The interactive installation script of the MKL download package was adapted in the file RevoMath_noninteractive-install.sh to not require any user input. See also MRO 3.2.5 documentation (archived).

Build the image:

cd 3.2.5
docker build -t mro:3.2.5 .

Automatic builds

The automatic builds are configured to run on the master branch and each Dockerfile, e.g. /3.4.0/Dockerfile is tagged with the full release version, e.g. 3.4.0. Other semantic version tags are added automatically by build hooks based on the directory names, e.g. latest, 3, and 3.4 for our example.

Contribute

You're welcome to contribute to this repository! Please be aware of the Code of Conduct.

Please open an issue before you start considerable work and do check out existing (closed) issues for possible tasks or previously answered problems. Feel free to ping the maintainer via Email if you don't get a response within a few weeks.

Thanks

  • Imre Gera @Hanziness contributed improved printing of EULAs/licenses (#12)
  • Roland Seidel @luechtdiode contributed 4.0.2 image files

License

MRO and MKL licenses

The following license applies to the code files in this repository:

Copyright (C) 2020 Daniel Nüst

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

About

Docker image for Microsoft R Open

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 65.8%
  • Dockerfile 29.8%
  • R 4.4%