Resultados de búsqueda

Resultados de búsqueda para: docker

WebAssembly en contenedores: Docker, Wasm y WASI

Con la llegada de WebAssembly (de ahora en adelante Wasm) en 2017, se abría un nuevo mundo de posibilidades. Con Wasm se busca ejecutar código binario escrito en casi cualquier lenguaje de programación y sin importar el navegador, de forma segura (en un entorno aislado) y de manera nativa (en ocasiones con mejor rendimiento). Más tarde apareció WebAssembly System Interface (de ahora en adelante WASI), que permite que los binarios de Wasm puedan interactuar con el sistema operativo de forma más sencilla sin importar dónde se ejecuten. Vamos a ver cómo compilar diversos lenguajes a Wasm/WASI y usarlo con Docker. Índice 1. Entorno y configuración 2. Java 3. Go 4. Rust 5. Python 6. Creación y arranque de contenedor Docker Wasm 7. Conclusiones 1. Entorno y configuración El entorno en el que se han probado las herramientas explicadas en este tutorial es el siguiente: Hardware: Portátil MacBook Pro 16′ 2021

Utilizando docker-compose para pruebas de integración en Spring Boot

La versión 3.1 Spring Boot ha sido liberada el pasado mes de mayo (2023) y entre las novedades que incluye se encuentra el soporte nativo para docker-compose, tanto en código productivo como de tests. En este tutorial vamos a hacer uso de docker-compose para configurar los contenedores de nuestros tests de integración evitando el uso de librerías de terceros o configuraciones en plugins de Maven. 0. Índice de contenidos. Introducción. Alternativas. Creación proyecto de prueba. Creación test de integración. Uso en proyectos donde se levantan varios contenedores. Conclusiones. 1. Introducción Los tests de integración son pruebas automatizadas que se enfocan en verificar el correcto funcionamiento de la interacción entre diferentes componentes de un sistema. A diferencia de las pruebas unitarias, que se centran en probar individualmente las unidades de código, las pruebas de integración se encargan de validar la integración y colaboración adecuada de los diversos módulos, servicios y capas

Despliegue de aplicaciones con Docker-Compose

Despliegue de aplicaciones con Docker-Compose En este tutorial vamos a aprender a desplegar nuestros proyectos en contenedores Docker de manera sencilla y rápida, utilizando docker-compose. Características del SO Ubuntu 20.04 Docker 20.10.12 Docker-compose 1.29.2 Node.js v18.12.1 NPM 8.19.2 ¿Qué es docker-compose? Docker Compose es una herramienta de Docker que orquesta contenedores en un mismo cliente. Consiste en un archivo de texto en formato YAML, que define de forma declarativa los contenedores que se van a desplegar, así como las dependencias entre ellos. Al utilizar el paradigma declarativo, en este documento sólo se especifican las características de los contenedores deseados, y no cómo se despliegan. Para el despliegue, se basa en la definición de servicios, que referencian imágenes Docker de un registro y las características de los contenedores que se desean desplegar. Este archivo normalmente tiene el nombre Text 📋 Copiar docker-compose.yml pero puede tener cualquier otro nombre, siempre que se

kafka_docker_m1_image

Ejecutar Kafka Confluent con Docker en Apple Silicon

Índice Problema Entorno Pasos Conclusiones Referencias 1. Problema Aunque podamos encontrar Docker compatible con Apple Silicon desde su versión 3.3.1, existen aún múltiples imágenes generadas exclusivamente para arquitectura Intel, o mejor dicho, x86. Como ya se recoge en la página oficial, las imágenes que no hayan sido contempladas para ARM se ejecutarán bajo simulación de x86, pero no aseguran un buen rendimiento y/o errores de ejecución o emulación, delegando a los desarrolladores la responsabilidad de hacer compatible las imágenes con múltiple arquitectura. En líneas generales, trabajar imágenes preparadas solo en x86 en los nuevos procesadores Apple Silicon es casi imposible. Un ejemplo es la ejecución de Kafka bajo las imágenes de cp-confluent. Levantar un simple contenedor de Kafka con Zookeper puede llevar minutos y es muy probable que nos encontremos errores aleatorios de emulación de QEMU. Estos problemas ya son reconocidos por Confluent, pero aún no hay noticias para la

Cómo ejecutar contenedores de Docker con Maven exec-maven-plugin

Cuando estamos usando Maven y queremos levantar contenedores de Docker para, por ejemplo, ejecutar los tests de integración, es bastante típico usar alguno de los plugins específicos que existen. Donde a día de hoy posiblemente el más habitual es docker-maven-plugin de Fabric8. Estos plugins suelen ser un recubrimiento sobre un cliente de Docker que al final se conecta con el Docker daemon para realizar las acciones necesarias. Si bien para casos sencillos son muy convenientes, y de hecho seguramente deberían ser la opción por defecto, el problema que tienen este tipo de plugins es que están más pensados para crear imágenes en vez de ejecutarlas, y sobre todo si queremos levantar distintos contenedores con dependencias entre ellos… la cosa se complica ?. En este tutorial vamos a ver cómo podemos usar el simple plugin de Maven  Text 📋 Copiar exec-maven-plugin  para quitarnos estos intermediarios y hacer lo que queramos directamente con el comando 

Imagen de un MacBook con chip M1 junto al logo de Docker, simbolizando la integración entre Docker y Mac M1.

Maven + Mac M1 (aarch64) + Fabric8 docker-maven-plugin

En este tutorial, Alejandro Pérez nos muestra cómo resolver el error de compatibilidad del plugin docker-maven-plugin de Fabric8 en Macs con chip M1 (aarch64), mediante una solución sencilla basada en socat. Además, incluye una configuración de ejemplo con PostgreSQL y consejos prácticos para evitar bloqueos al usar Maven con Docker en esta arquitectura.

Cómo crear y desplegar microservicios con Spring Boot, Spring Cloud Netflix y Docker

En este tutorial vamos a aprender cómo crear microservicios con Spring Boot, cómo configurar servicios que utilicen los componentes Eureka y Zuul de Spring Cloud Netflix y cómo desplegarlos en contenedores Docker. Índice de contenidos Introducción Entorno Servicio de Spring Cloud Netflix: Eureka Servicio de Spring Cloud Netflix: Zuul Microservicio de ejemplo Creación de imágenes Creación de contenedores y despliegue Conclusiones Referencias Introducción La arquitectura de microservicios es una arquitectura que recientemente, ha ganado mucha popularidad, existiendo casos de éxito reconocidos mundialmente como Netflix o Amazon. Esta arquitectura conlleva un gran esfuerzo, pero para aplicaciones que necesiten ser escalables y muy flexibles es una arquitectura ideal. Si quieres saber más sobre esta arquitectura, puedes consultar esta guía. En primer lugar, vamos a explorar cómo Spring Cloud Netflix nos ayuda a aplicar patrones fundamentales en la arquitectura de microservicios, como lo son el patrón de Descubrimiento de Servicios (mediante Eureka) y

Testcontainers – Dockeriza tus tests de integración en Java

El uso de una base de datos en memoria como H2 en Java tiene algunas desventajas porque los tests podrían depender de características que las bases de datos en memoria no pueden reproducir y algunos tests que han pasado en local pueden fallar en producción

Usando Jenkins y Docker

En este tutorial se va a montar un entorno de integración contínua usando Jenkins y contenedores de Docker.

Detalle del logotipo en la web de gitlab.com

Tipos de runner en GitLab CI: ¿Shell o docker?

GitLab CI es una herramienta muy potente y cada vez más utilizada. Si no la conoces, te recomiendo pasarte por este artículo que yo mismo escribí en mi blog personal hablando un poco de las bondades de esta herramienta. Hoy vamos a profundizar un poco más sobre los tipos de executors para tus runner en GitLab CI. Como muchos sabréis, no es lo mismo utilizar una instalación de gitlab en un servidor propio que utilizar la web pública de gitlab.com, especialmente si usas la versión gratuita, mucho más limitada. Hace bastante tiempo, Rubén Aguilera ya nos contó cómo configurar GitLab CI en una instalación propia. Así que hoy vengo a contarte cómo es el entorno en la web pública de GitLab y qué limitaciones tiene. Vamos a enfrentar, principalmente, los executor de tipo SHELL (disponibles en instalaciones propias) frente a los executor DOCKER, (los que puedes usar en la versión