---
output: rmarkdown::html_vignette
title: Docker file
vignette: >
  %\VignetteIndexEntry{Docker file}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

# Docker file

The rco Docker image will optimize any CRAN package, using the latest GitHub `rco` stable version.
If the package to optimize has a `testthat` suite, then it will test the original and optimized versions, and show the obtained speed-up.

## Installation

First, you need to install [Docker](https://www.docker.com/) on your computer. 
And then, from a terminal, the `rco` Docker image can be pulled from [Docker Hub](https://hub.docker.com/r/jcrodriguez1989/rco) with:

```{bash eval=FALSE}
docker pull jcrodriguez1989/rco
```

## Usage

The docker image basic usage will optimize a random CRAN package, this is done with:

```{bash eval=FALSE}
docker run jcrodriguez1989/rco
```

We can also specify a package to optimize, using the `RCO_PKG` environment variable, for example, if we want to optimize the `rflights` package:

```{bash eval=FALSE}
docker run -e RCO_PKG=rflights jcrodriguez1989/rco
```

Also, if we want to get the resulting optimized files we can set a docker shared folder, with:

```{bash eval=FALSE}
# Replace DEST_FOLDER path, with your desired output path
DEST_FOLDER=/tmp/rco_dock_res
docker run -v $DEST_FOLDER:/rco_results jcrodriguez1989/rco
```

**In summary**, if we want to optimize the `rflights` package and save its results, we can do:

```{bash eval=FALSE}
docker run -e RCO_PKG=rflights -v $DEST_FOLDER:/rco_results jcrodriguez1989/rco
```

And in the `DEST_FOLDER` we will have files as:

```{bash eval=FALSE}
ls $DEST_FOLDER
## rflights  rflights_0.1.0.tar.gz  rflights_opt
```
