Si a alguien le sirve yo estoy haciendo el ejemplo con Jetty:
docker run -d -p 8080:8080 --name petcli jetty
Dockerfile:
FROM jetty:latest
COPY target/petclinic.war /var/lib/jetty/webapps
EXPOSE 8080
Introducción a Google Kubernetes Engine
Introducción a Google Kubernetes Engine
¿Qué es Kubernetes?
Repaso de Docker
Qué son los contenedores
Qué es Docker
Comandos Básicos de Docker
Creación del contenedor de Docker
Conceptos Basicos
Cluster y nodos ¿Qué son y cómo funcionan?
¿Qué son los Pods?
Deployments
Pods y Deployments en practica
Servicios
Servicios en práctica
Servicios en práctica / Loadbalancer
Servicios en práctica / Node Port
Crea tu primer Hola Mundo en Google Kubernetes Engine
Conceptos intermedios
Archivos descriptivos de infraestructura teoria y práctica
Labels teoría
Namespaces teoría
Labels y Namespaces explicación gráfica
Labels y Namespaces en práctica
Deployment Avanzado (Blue-green y Canary Deployment)
Implementando Deployment avanzados
Terminando de implementar nuestro canary deployment
Volúmenes
Volúmenes en práctica
RETO: Crea un blue green deployment
Arquitectura de una app más robusta
Desplegar una aplicación Stateful Teoría
Desplegar una aplicación Stateful Práctica
Auto Scaling teoría
Auto Scaling en práctica
Node Pools teoría
Node Pools práctica
Contenido Bonus
Generando un certificado https con Let's Encrypt para GCP
Certificado https
Service mesh con Istio
StackDriver
CI/CD con Cloud Builder
CI/CD con Cloud Builder práctica
Knative, GKE Serverless Addon
Comandos utilizados en el curso
Buenas prácticas
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
Carlos Arturo Prieto
Aportes 16
Preguntas 2
Si a alguien le sirve yo estoy haciendo el ejemplo con Jetty:
docker run -d -p 8080:8080 --name petcli jetty
Dockerfile:
FROM jetty:latest
COPY target/petclinic.war /var/lib/jetty/webapps
EXPOSE 8080
Para el que le interese aqui la imagen de docker lista para jetty y solo hay que correrla tiene los archivos necesarios, pero el petclinic no esta en el commit de git que esta publicado. Espero les sirva a muchos.
PD: recuerda cambiar YOUR_PROJECT_ID por tu proyecto para que te pueda subir al container registry.
docker pull springcommunity/spring-framework-petclinic
gcloud auth configure-docker
docker tag springcommunity/spring-framework-petclinic:latest gcr.io/YOUR_PROJECT_ID/spring-framework-petclinic:v1
docker push gcr.io/YOUR_PROJECT_ID/spring-framework-petclinic:v1
gcloud container images
Mi solución del Reto:
Lo hice usando la imagen de nginx
.
index.html
dentro de la carpeta, con el contenido <h1>Hello World</h1>
FROM nginx:alpine
COPY index.html /usr/share/nginx/html
EXPOSE 8080
$ docker build ./
$ docker images
$ docker tag [IMG_ID] gcr.io/[PROJECT_ID]/TAG_NAME
$docker push gcr.io/[PROJECT_ID]/TAG_NAME
Y listo. La imagen se puede ver en la consola.
Tengo una duda, ¿Como es que empujamos la imagen spring-framework-pet-clinic que creamos a partir del Dockerfile?, tengo enetendido que lo que hicimos fue hacer un TAG del ya existente springcommunity/spring-framework-petclinic y re subirlo al registro de contenedores de Google sin embargo el que creamos con el Dockerfile no lo tomamos en cuenta :S
Antes de hacer push, deben activar el API de container registry para esto escriben en el buscador Container Registry y dan en Habilitar API, luego de esto ya pueden hacer push
Nota se debe activar el container registry.
A mi no me funcionó la App de este video, pero logré solucionar el inconveniente **clonando ** otro repositorio y haciendo los pasos siguientes. Esto ha durado hasta la clase del video 15. Si quieren pueden seguir los siguientes pasos para que no se queden atorados:
Ejecutar una App dentro de un Contenedor
Paso 1.
Clonamos repositorio Clínica de Mascotas.
• $ git clone https://github.com/spring-projects/spring-petclinic.git
Paso 2.
• Entramos a la carpeta:
○ $ cd spring-petclinic/
• Ejecutamos la app.
○ $ ./mvnw package
○ $ java -jar target/*.jar
• Cambiar a vista previa y colocar el puerto 8080
• Nota: Esta app está corriendo en una VM. Lo que vamos a hacer es ejecutarla en un contenedor.
Paso 3.
• Hacemos la imagen con este comando.
○ ./mvnw spring-boot:build-image
iba a ser más creativo, pero lo más facil es hacerlo con nginx
cd ~
mkdir helloworld
nano index.html -> add "hello world"
nano Dockerfile -> FROM nginx, COPY html, EXPOSE 8080
docker build . -> copy $buildoutput
docker run -d -p 8080:80 $buildoutput
docker tag $IMAGE_ID gcr.io/$PRJ_ID/nginx-k
docker push gcr.io/$PRJ_ID/nginx-k
de donde sacaste el target/petclinic.war ya que me dice que no encuentra el archivo /var/lib/docker/tmp/docker-builder599540831/target/petclinic.war
Hola alguien por favor me podria ayudar con un error que me arroja al momento de autenticarme en el container register,
a través del siguiente comando:
$ gcloud auth configure-docker
El error que me arroja es el siguiente:
WARNING: Your config file at [/home/jhonospina2711/.docker/config.json] contains these credential helper entries:
{
"credHelpers": {
"asia.gcr.io": "gcloud",
"eu.gcr.io": "gcloud",
"gcr.io": "gcloud",
"marketplace.gcr.io": "gcloud",
"staging-k8s.gcr.io": "gcloud",
"us.gcr.io": "gcloud"
}
}
Adding credentials for all GCR repositories.
WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are
using.
gcloud credential helpers already registered correctly.
Saludos.
levante el siguiente ejemplo de un contenedor de docker en console.cloud.google.com pero me da error, pueden revisar que esta pasando, gracias
https://www.josedomingo.org/pledin/2016/02/ejemplos-de-ficheros-dockerfile-creando-imagenes-docker/
docker run -p 8888:8888 --name servidor_web jk/apache2:1.0
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 172.18.0.2. Set the ‘ServerName’ directive globally to suppress this message
Solo cambie el puerto a 8888
Error: Could not connect to Cloud Shell on port 8888.
Ensure your server is listening on port 8888 and try again.
Hola , como podria solucionar este error ?.
docker push gc.io/spring-framework-petclinic
f3a38968d075: Waiting
a327787b3c73: Waiting
5bb0785f2eee: Waiting
error parsing HTTP 404 response body: invalid character ‘<’ looking for beginning of value: “<!doctype html>\n\n<head>\n <meta charset=“utf-8”>\n <meta http-equiv=“X-UA-Comp
atible” content=“IE=edge,chrome=1”>\n <title>We Can’t Find the Page — 404 | GameChanger</title>\n <meta name=“viewport” content=“width=device-width, initial-s
cale=1.0”>\n <link rel=“shortcut icon” href=”//d2qxbjtnvyv052.cloudfront.net/media/5dc03b255d34ded2898745d08ffaed4d/images/favicon.ico"/>\n <link rel=“apple-touch-icon"
href=”//d2qxbjtnvyv052.cloudfront.net/media/44958470ac0d1bb0c54cf71a2803f877/images/icons/dumbo_108x108.png">\n <link rel=“stylesheet” href="//d2qxbjtnvyv052.cloudfront.net/m
edia/4c30dc07194718244ebb5c669746e3e9/build/css/compressed/main.css"/>\n <link rel=“stylesheet” href="//d2qxbjtnvyv052.cloudfront.net/media/8d901edaa00a22755a4e41330be43937/bu
ild/css/error.css">\n <link rel=“stylesheet” href="//d2qxbjtnvyv052.cloudfront.net/media/852204999bd4373f4e98a2e17cfb6e9e/build/css/search.css">\n \n<script>\n(function(i,
s,o,g,r,a,m){i[‘GoogleAnalyticsObject’]=r;i[r]=i[r]||function(){\n(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\nm=s.getElementsByTagName(o)[0];a.asy
Autenticarse en Google:
gcloud auth configure-docker
Este es mi Dockerfile:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 8080
Cheatsheet para la creación de Dockerfile:
https://devhints.io/dockerfile
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?