Docker Image --> https://hub.docker.com/r/jtrillo/masterlemon7-cloud-lab
AWS Instance --> Práctica ya evaluada. Instancia eliminada.
- Cuenta de Docker Hub
- Cuenta de AWS
- Haz un fork de este repositorio
Dado este proyecto en NodeJS, crea su Dockerfile sabiendo que nos han pedido como imagen base ubuntu:18.04, versión 10 de NodeJS, el 8888 será el puerto donde exponga la comunicación la applicación, la señal de STOP debe llegarle a la aplicación y el contenedor podría ser iniciado con cualquier proceso.
Ver Dockerfile.
Sube la imagen de Docker a DockerHub.
Iniciar sesión en Docker Hub
docker login
Hacer el build de la imagen, tagearla y subirla al registry
docker build -t lab_app .
docker tag lab_app jtrillo/masterlemon7-cloud-lab
docker push jtrillo/masterlemon7-cloud-lab
Ver imagen en Docker Hub.
Automatiza el proceso de creación de la imagen de Docker y su subida a Docker Hub después de cada cambio en el repositorio utitlizando Travis CI.
- Enlazar este repositorio con Travis CI.
- Añadir las variables de entorno
DOCKER_USER
yDOCKER_PASSWORD
en las opciones de este repositorio en Travis. - Hacer un nuevo commit incluyendo el fichero
.travis.yml
.
Crea un servidor y despliega la imagen de Docker en AWS utilizando Terraform.
- Crear un nuevo usuario en IAM de AWS.
- Crear un key pair en EC2 de AWS.
- Descargar Terraform. Descomprimir (
unzip terraform.zip
) y añadir al PATH (sudo mv terraform /usr/local/bin
). - Crear carpeta
./terraform
y dentro de ella los archivosscript.sh
ymain.tf
. - Crear las variables de entorno
AWS_ACCESS_KEY_ID
yAWS_SECRET_ACCESS_KEY
con las credenciales del usuario que creamos en el primer paso. - Crear el servidor y desplegar la imagen Docker usando Terraform
terraform init
terraform plan
terraform apply
Para eliminar los recursos creados previamente basta con ejecutar el comando terraform destroy
.