Giter Club home page Giter Club logo

docker-dotnet-lab-exercises's Introduction

docker-dotnet-lab-exercises's People

Contributors

dependabot[bot] avatar vovimayhem avatar

Watchers

 avatar  avatar

docker-dotnet-lab-exercises's Issues

Crear archivo Dockerfile

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

¡Bienvenido!

En éste curso estaremos usando dos herramientas: Git y Docker Compose, que es una herramienta para definir y correr applicaciones multi-contenedores (stacks) de Docker.

Instalar Git

Es muy importante para seguir éste curso tener instalado Git.

Instalar Docker Compose

Si instalaste Docker para Mac, o Docker para Windows, ya tienes todo lo
necesario para trabajar.

Si en cambio estas usando Docker para Linux, hay qué instalar Docker Compose, pues no viene incluido con el paquete de docker que instalaste.

Clonar el repo del curso

Vamos a estar guardando los cambios que hagamos en éste repositorio.

Antes de que avancemos, debes clonar éste repositorio usando Git:

git clone [email protected]:vovimayhem/docker-dotnet-lab-exercises.git && cd docker-dotnet-lab-exercises

Avanzando al siguiente paso

Es necesario seguir las indicaciónes para que el curso avance de manera automática.
Al final de cada Issue o respuesta, verás la indicación para continuar avanzando.

Por ejemplo:

Para avanzar al siguiente paso, es necesario cerrar éste issue

(Para avanzar al siguiente paso, es necesario cerrar éste issue)

Agregar el servicio de la base de datos

Ahora nos toca agregar un servicio de bases de datos al stack. Usaremos PostgreSQL en éste curso.

Empezemos por crear un archivo llamado docker-compose.yml en la raíz del proyecto - observen que éste fragmento de código ya define un volúmen para los datos de la DB:

version: "3.7"

services:
  postgres:
    # Aquí estaremos agregando las configuración del servicio de postgres

Utilizaremos la imagen oficial de Postgres para iniciar los contenedores de éste servicio. Les recomiendo usar la version postgres:11-alpine, ya que es una imagen muy pequeña, y se descarga muy rápido.

Para decirle a docker-compose que utilice ésta imagen como base, debemos agregar la llave image, con el nombre de la imagen que queremos usar.

Una vez que tengan hayan hecho éstos cambios, podremos levantar podremos iniciar el servicio con el siguiente comando:

docker-compose up

Cuando vean que se disparan un montón de mensajes de log, es hora de responder "OK!" en éste Issue, para recibir la siguiente indicación :)

Compartiendo el código de la app al servicio de la app

En ésta sección continuaremos configurando el servicio web que agregamos en
la sección anterior.

Lo que nos faltó (a propósito) en nuestra imagen es el código fuente de la app.
Ésto es porque en éste punto, queremos ser capaces de modificar el código de la
app:

Si hubiéramos incluido el código dentro de la imagen - las imágenes de docker
son "inmutables", o sea ya no se pueden cambiar - tendríamos qué volver a
construir la imagen con docker-compose build web cada vez que hiciéramos algún
cambio. ¡Nada ideal para un ambiente de desarrollo!

Lo que haremos nosotros será "montar" el directorio con el código fuente de la
app dentro de nuestro servicio - usando de nuevo la llave volumes
ahora en el servicio de web. Pero a diferencia de la vez anterior, no será un
volúmen de docker, sino nuestro directorio.

Agreguen lo siguiente a la lista de volúmenes del servicio web: .:/usr/src.

Contesten "OK!" para continuar cuando hayan agregado el cambio.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.