The template repository for the Docker .NET Lab course on Learning Lab.
The original code was taken from https://github.com/leetrent/dotnet-core-postgresql, altough with some small corrections.
The template repository for the Docker .NET Lab course on Learning Lab.
Home Page: https://lab.github.com/vovimayhem/docker-.net-lab
The template repository for the Docker .NET Lab course on Learning Lab.
The original code was taken from https://github.com/leetrent/dotnet-core-postgresql, altough with some small corrections.
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
:
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
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.
Es muy importante para seguir éste curso tener instalado Git.
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.
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
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)
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 :)
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.