fedeelizondo23 / docker-dotnet-lab-exercises

The template repository for the Docker .NET Lab course on Learning Lab.
https://lab.github.com/vovimayhem/docker-.net-lab
0 stars 0 forks source link

Crear archivo Dockerfile #3

Open github-learning-lab[bot] opened 5 years ago

github-learning-lab[bot] commented 5 years ago

Ahora vamos a pasarnos a algo diferente: Crear una imagen para correr la app.

Para ésto primero necesitamos construir una imagen de Docker con .NET y con las librerías que necesitamos para correr la app en "modo desarrollo", y configurar el comando default con el que vamos a correr la app.

Para ésto, necesitaremos crear un archivo Dockerfile:

Archivo Dockerfile

Un archivo Dockerfile` es un archivo de texto con la siguiente estructura:

FROM nombre-de-la-imagen-base

ENV NOMBRE_DE_VARIABLE VALOR_DE_VARIABLE

WORKDIR /directorio/que-queremos/que-sea-el-default

COPY archivos-que-queremos-copiar destino-de archivos

RUN comando-para-agregar-cosas-a-la-imagen

Vamos a crear un archivo llamado así: Dockerfile (noten la falta de extensión) en la raíz del proyecto.

El primer comando que agregaremos a éste archivo será el comando FROM para usar la imagen de microsoft microsoft/dotnet:sdk como nuestra base.

Respondan "OK!" para continuar

fedeelizondo23 commented 5 years ago

OK!

github-learning-lab[bot] commented 5 years ago

Ahora usaremos el comando ENV para guardar 2 variables de entorno en la imagen:

Noten que cuando agregamos variables de entorno con el comando ENV a la imagen, éstos valores se quedarán guardados en la imagen.

Respondan con "OK!" para continuar

fedeelizondo23 commented 5 years ago

OK!

github-learning-lab[bot] commented 5 years ago

Ahora le indicaremos a la imagen que todo lo que haga se hará desde el directorio /usr/src.

Agreguen el comando WORKDIR para configurar que el directorio /usr/src sea el directorio default en donde se ejecutarán los comandos que le enviemos al contenedor, y que se el directorio al que entraremos cuando entremos al container.

Respondan "OK!" cuando lo agreguen!

fedeelizondo23 commented 5 years ago

OK!

github-learning-lab[bot] commented 5 years ago

Ahora necesitamos copiar el archivo con la lista de dependencias de la app.

Utilicen el comando COPY para copiar el archivo MvcMovie.csproj (que entre otras cosas, contiene la lista de dependencias) al directorio /usr/src/.

Noten que hay qué agregar el slash final en éste comando, para que no intente guardar el archivo con el nombre src dentro del folder /usr/.

Cuando hayan agregado éste comando, respondan "OK!"

fedeelizondo23 commented 5 years ago

OK!

github-learning-lab[bot] commented 5 years ago

Ahora, usaremos el comando dotnet restore para descargar las dependencias del proyecto, y que se queden guardadas en la imagen.

Utilicen el comando RUN para correr el comando dotnet restore.

Cuando se corra el build de éste archivo, se descargaran las dependencias del proyecto que estan definidas en el archivo MvcMovie.csproj, que copiamos en el paso anterior.

Cuando hayan agregado ésto, respondan "¿Qué sigue?" :)

fedeelizondo23 commented 5 years ago

¿Qué sigue?

github-learning-lab[bot] commented 5 years ago

Ahora definiremos el comando default que correrá la imagen.

El comando dotnet watch run servirá para iniciar el servicio web dentro del contenedor. Cuando se detecte que hubo un cambio en el contenido del directorio de la app (Aquí dentro será /usr/src), éste recompilará la aplicación y reiniciará el servicio dentro del contenedor.

Usemos el comando CMD en nuestro Dockerfile para asegurarnos que el comando por default que se ejecutará con la imagen sea dotnet watch run.

Una vez que hayan terminado, respondan "OK!" para continuar.