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.
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)
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
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
>
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
.
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
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
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 .
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 .
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 .
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 .
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 .
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.
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.
- Imre Gera @Hanziness contributed improved printing of EULAs/licenses (#12)
- Roland Seidel @luechtdiode contributed 4.0.2 image files
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/.