# Contenedorizar una aplicación R


## Requisitos previos

- Tienes un [cliente de git](https://git-scm.com/downloads). Los ejemplos de esta sección utilizan un cliente de git basado en línea de comandos, pero puedes usar cualquier cliente.

## Descripción general

Esta sección te guía a través de la contenedorización y ejecución de una aplicación R.

## Obtener la aplicación de ejemplo

La aplicación de ejemplo utiliza el popular framework [Shiny](https://shiny.posit.co/).

Clona la aplicación de ejemplo para usarla con esta guía. Abre una terminal, ve al directorio en el que quieras trabajar y ejecuta el siguiente comando para clonar el repositorio:

```console
$ git clone https://github.com/mfranzon/r-docker-dev.git && cd r-docker-dev
```

Ahora deberías tener el siguiente contenido en tu directorio `r-docker-dev`.

```text
├── r-docker-dev/
│   ├── src/
│   │   └── app.R
│   ├── src_db/
│   │   └── app_db.R
│   ├── compose.yaml
│   ├── Dockerfile
│   └── README.md
```

Para obtener más información sobre los archivos en el repositorio, consulta lo siguiente:

- [Dockerfile](/reference/dockerfile/)
- [.dockerignore](/reference/dockerfile/#dockerignore-file)
- [compose.yaml](/reference/compose-file/)

## Ejecutar la aplicación

Dentro del directorio `r-docker-dev`, ejecuta el siguiente comando en una terminal.

```console
$ docker compose up --build
```

Abre un navegador y visualiza la aplicación en [http://localhost:3838](http://localhost:3838). Deberías ver una aplicación Shiny sencilla.

En la terminal, presiona `ctrl`+`c` para detener la aplicación.

### Ejecutar la aplicación en segundo plano

Puedes ejecutar la aplicación desacoplada de la terminal agregando la opción `-d`. Dentro del directorio `r-docker-dev`, ejecuta el siguiente comando en una terminal.

```console
$ docker compose up --build -d
```

Abre un navegador y visualiza la aplicación en [http://localhost:3838](http://localhost:3838).

Deberías ver una aplicación Shiny sencilla.

En la terminal, ejecuta el siguiente comando para detener la aplicación.

```console
$ docker compose down
```

Para obtener más información sobre los comandos de Compose, consulta la [referencia de la CLI de Compose](/reference/cli/docker/compose/).

## Resumen

En esta sección, aprendiste cómo puedes contenedorizar y ejecutar tu aplicación R usando Docker.

Información relacionada:

- [Descripción general de Docker Compose](/compose/)

## Pasos siguientes

En la siguiente sección, aprenderás cómo puedes desarrollar tu aplicación utilizando contenedores.

