Creación de Imágenes Docker en Google Cloud paso a paso

4/8
Recursos
Transcripción

¿Cómo construir imágenes de contenedores en Google Cloud?

En el maravilloso mundo del desarrollo de software en la nube, crear imágenes de contenedores es fundamental para despliegues eficientes y confiables. En este artículo, exploraremos cómo puedes construir imágenes de contenedores de manera sencilla utilizando los servicios de cómputo de Google Cloud. Aquí aprenderás sobre dos métodos eficaces para lograrlo: el tradicional Docker file y el más automatizado YAML. Así que, ¡prepárate para dar un paseo por la nube!

¿Cuáles son los pasos esenciales?

Construir una imagen de contenedor de manera organizada involucra seguir cinco pasos cruciales:

  1. Preparación de los archivos fuente:

    • Crea los directorios y archivos necesarios.
    • Usa el editor de texto basado en navegador para manipular los archivos.
  2. Creación de un repositorio Docker en Artifact Registry:

    • Utiliza la consola de Google Cloud para crear un repositorio donde almacenarás tus imágenes.
  3. Construcción de la imagen del contenedor con Dockerfile:

    • Define un archivo Dockerfile con:
      • La imagen base del sistema operativo.
      • Los archivos que se copiarán a la imagen del contenedor.
      • El punto de entrada de la imagen.
  4. Construcción de la imagen mediante un archivo de BuildConfig:

    • Usa un archivo YAML, cloud build.yaml, para especificar los pasos necesarios para construir la imagen.
  5. Verificación de los detalles de construcción:

    • Observa los resultados de la construcción, verificando las imágenes en el Artifact Registry.

¿Cómo usar Dockerfile para crear una imagen?

El Dockerfile es una herramienta esencial y sencilla para construir imágenes de contenedores. Este archivo de configuración permite definir cómo se construirá la imagen adecuadamente. A continuación, una estructura básica de un Dockerfile:

# Imagen base del sistema operativo
FROM ubuntu:latest

# Copiar archivos necesarios
COPY ./source /app

# Definir punto de entrada para la ejecución
ENTRYPOINT ["./app/hello-world.sh"]

¿Qué beneficios ofrece el uso de Dockerfile?

  • Simplicidad: Solo necesitas unas pocas líneas de configuración.
  • Control: Dictas exactamente qué ocurre a cada paso de la construcción del contenedor.
  • Reproducibilidad: Aseguras configuraciones idénticas en cada construcción.

¿Cómo construir una imagen con un archivo YAML?

El uso de archivos YAML para construir imágenes ofrece una alternativa robusta y programática al Dockerfile. Este método es eficiente para automatizar y gestionar configuraciones más complejas.

¿Cómo se ve un archivo cloud build.yaml?

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.']
images:
  - 'gcr.io/$PROJECT_ID/quickstart-image'

¿Qué ventajas presenta el uso de YAML?

  • Automatización: Simplifica la integración continua y despliegue continuo (CI/CD).
  • Eficiencia: No solo crea la imagen, también la publica en el repositorio deseado automáticamente.
  • Flexibilidad: Admite configuraciones complejas, útiles para proyectos grandes.

¿Cómo verificar el éxito de la construcción?

Una vez construidas las imágenes, es crucial verificar los resultados. A través de Google Cloud Console:

  1. Navega al Artifact Registry para ver el repositorio creado.
  2. Confirma que las imágenes fueron publicadas exitosamente.
  3. Revisa las imágenes listas para usar y asegúrate de que contengan las etiquetas correctas, como quickstart-image:tag1.

Así que ahí lo tienes, un simple pero poderoso camino desde los archivos fuente hasta tener imágenes de contenedores listas para producción en Google Cloud. Si sigues estos pasos, podrás garantizar despliegues eficientes de tus aplicaciones hacia la nube. ¡Ahora es tu turno de explorar y seguir expandiendo tus habilidades en el desarrollo en la nube!

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Preparando los archivos fuente

quickstart.sh
Para hacer ejecutable el script chmod +x quickstart.sh

echo "Hola mundo!"

Dockerfile

FROM alpine
COPY quickstart.sh /
CMD ["/quickstart.sh"]

Crear un repo de Docker en Artifact Registry

gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
--location=us-central1 --description="Docker repository"

Para verificar que el repo se creo:

gcloud artifacts repositories list

Construyendo la imagen usando Docker

El project-id se puede obtener con el comando gcloud config ger-value project

gcloud builds submit --tag us-central1-docker.pkg.dev/project-id/quickstart-docker-repo/quickstart-image:tag1

Construyendo usando un build config file

cloudbuild.yaml
El $PROJECT_ID se puede obtener con el comando gcloud config ger-value project

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
images:
- 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'

Para ejecutar el cloudbuild.yaml usamos:

gcloud builds submit --config cloudbuild.yaml

En Cloud Build bajo Build history podemos ver los archivos que se han compilado con el comando anterior.

Les comparto este enlace donde podemos ver la diferencia entre Artifact Registry y Container Registry

https://cloud.google.com/blog/products/application-development/understanding-artifact-registry-vs-container-registry

Genial el laboratorio, borre las imagenes Docker y ejecute varias veces los comandos de creacion, quitando el Dockerfile me di cuenta que no se debe quitar porque es dependencia. Estos archivos de configuracion aseguran y minimizan el error. Y solo corremos un comando yaml con todos los parametros de configuracion y listo. Excelente carlos. Gracias

El Cloud Build automaticamente reemplaza $PROJECT\_ID con el ID de nuestro proyecto.

Increíble 🤟