<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>docker on Lo Crestià</title><link>https://www.eiximenis.dev/categories/docker/</link><description>Recent content in docker on Lo Crestià</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>{}</copyright><lastBuildDate>Fri, 26 Jun 2020 18:00:00 +0000</lastBuildDate><atom:link href="https://www.eiximenis.dev/categories/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL Server en Docker que no se ejecuta como root</title><link>https://www.eiximenis.dev/posts/2020-06-26-sql-server-docker-no-se-ejecuta-en-root/</link><pubDate>Fri, 26 Jun 2020 18:00:00 +0000</pubDate><atom:modified>Fri, 26 Jun 2020 18:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-06-26-sql-server-docker-no-se-ejecuta-en-root/</guid><description>Muchos contenedores, por motivos de seguridad, se están moviendo de ejecutar su proceso como root a hacerlo con otro usuario. Un ejemplo es SQL Server (mcr.microsoft.com/mssql/server:2019-latest). Eso te puede dar algunos problemas, especialmente si usas volúmenes, pero nada que, afortunadamente, no pueda arreglarse. ¡Vamos allá!
Ejecutando contenedores con Docker for Windows desde WSL2 / Ejecutando contendores en Linux con Docker Ambos escenarios son equivalentes: tanto si usas directamente Linux y Docker, como si usas Docker for Windows con el backend de WSL2 y ejecutas los contenedores desde la CLI de Docker en WSL2 (no en Windows).</description><dc:creator>eiximenis</dc:creator><category>docker</category></item><item><title>Gestión de Builds y Releases con Docker y Azure Devops</title><link>https://www.eiximenis.dev/posts/2019-10-25-gestion-de-builds-y-releases-con-docker-y-azure-devops/</link><pubDate>Fri, 25 Oct 2019 00:00:00 +0000</pubDate><atom:modified>Fri, 25 Oct 2019 00:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-10-25-gestion-de-builds-y-releases-con-docker-y-azure-devops/</guid><description>&lt;p>El sistema de Builds y Releases de Azure Devops es extremadamente flexible, pero se basa en una premisa: la build publica cierto artefacto binario que la Release recoje e instala en los distintos entornos (stages en la terminología de Azure Devops).&lt;/p></description><dc:creator>eiximenis</dc:creator><category>devops</category><category>docker</category></item><item><title>Traducir entre gRPC y HTTP/JSON</title><link>https://www.eiximenis.dev/posts/2019-06-28-traducir-entre-grpc-y-http-json/</link><pubDate>Fri, 28 Jun 2019 16:22:05 +0000</pubDate><atom:modified>Fri, 28 Jun 2019 16:22:05 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-06-28-traducir-entre-grpc-y-http-json/</guid><description>&lt;p>Como comenté en mi &lt;a href="http://geeks.ms/etomas/2019/06/27/grpc-y-no-grpc-todo-junto-en-el-mismo-proyecto/">post anterior sobre gRPC&lt;/a>, la traducción entre gRPC y JSON es estándard. Esto nos permite tener nuestra comunicación interna en gRPC y exponer una fachada en HTTP con JSON para aquellos clientes que (todavía) no pueden usar gRPC.&lt;/p>
&lt;p>En este post os voy a mostrar como podemos crear dicha fachada usando Envoy ejecutándose en un contenedor Docker. ¡Vamos allá!&lt;/p></description><dc:creator>eiximenis</dc:creator><category>grpc</category><category>asp.net core</category><category>docker</category></item><item><title>Net Core (Linux) Error: System.IO .IOException: The configured user limit on the number of inotify instances has been reached</title><link>https://www.eiximenis.dev/posts/2019-06-17-net-core-linux-error-system-io-ioexception-the-configured-user-limit-on-the-number-of-inotify-instances-has-been-reached/</link><pubDate>Mon, 17 Jun 2019 09:57:08 +0000</pubDate><atom:modified>Mon, 17 Jun 2019 09:57:08 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-06-17-net-core-linux-error-system-io-ioexception-the-configured-user-limit-on-the-number-of-inotify-instances-has-been-reached/</guid><description>&lt;p>Buenas! Andaba yo preparando unas demos donde tenía varios contenedores ejecutándose en un Kubernetes, usando netcore y Linux. Todo funcionaba (más o menos) bien, hasta que de golpe y porrazo los contenedores empezaron a fallar:&lt;/p>
&lt;pre>&lt;span class="js-display-url">System.IO&lt;/span>&lt;span class="tco-ellipsis">&lt;span class="invisible"> &lt;/span>&lt;/span>.IOException: The configured user limit (1024) on the number of inotify instances has been reached&lt;/pre>
&lt;p>Este error apareció cuando escalé el número de contenedores y se daba en los nuevos contenedores creados (los iniciados seguían funcionando). ¿Qué podía estar sucendiendo?&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>Crear imágenes Docker multi-arquitectura con Azure Devops</title><link>https://www.eiximenis.dev/posts/2019-05-30-crear-imagenes-docker-multi-arquitectura-con-azure-devops/</link><pubDate>Thu, 30 May 2019 10:12:23 +0000</pubDate><atom:modified>Thu, 30 May 2019 10:12:23 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-05-30-crear-imagenes-docker-multi-arquitectura-con-azure-devops/</guid><description>&lt;p>Ahora que los contenedores windows empiezan a funcionar decentemente, nos &lt;strong>puede interesar crear imágenes Docker multi-arquitectura&lt;/strong> para que se puedan desplegar en contenedores Windows o Linux dependiendo de las necesidades. En este post te cuento como hacerlo usando Azure Devops.&lt;/p>
&lt;p>Vamos a ver primero qué es una imagen multi-arquitectura, como crearla con la CLI de Docker y finalmente como hacerlo desde Azure Devops 🙂&lt;/p></description><dc:creator>eiximenis</dc:creator><category>devops</category><category>docker</category></item><item><title>Curiosidad: Esos nombres de contenedores en Docker…</title><link>https://www.eiximenis.dev/posts/2019-03-05-curiosidad-esos-nombres-de-contenedores-en-docker/</link><pubDate>Tue, 05 Mar 2019 15:51:11 +0000</pubDate><atom:modified>Tue, 05 Mar 2019 15:51:11 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-03-05-curiosidad-esos-nombres-de-contenedores-en-docker/</guid><description>&lt;p>Una cosa que causa cierta confusión en la gente que empieza con Docker es **el nombre de los contenedores. **La verdad es que cuando ejecutamos un contenedor usando &lt;em>docker run&lt;/em> este tiene un nombre aleatorio.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category></item><item><title>Container Groups en ACI</title><link>https://www.eiximenis.dev/posts/2019-02-19-container-groups-en-aci/</link><pubDate>Tue, 19 Feb 2019 22:18:45 +0000</pubDate><atom:modified>Tue, 19 Feb 2019 22:18:45 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-02-19-container-groups-en-aci/</guid><description>&lt;p>Este es el segundo post sobre Azure Container instances. En el &lt;a href="https://geeks.ms/etomas/2019/02/01/aci-azure-container-instances-serverless-containers/">post anterior&lt;/a> vimos lo fácil que era publicar un contenedor y ejecutarlo usando ACI y discutimos algunas de sus limitaciones.&lt;/p>
&lt;p>En este post veremos que ACI nos permite &lt;strong>ejecutar grupos de contenedores&lt;/strong>, de forma igualmente sencilla y así tener algunos escenarios más complejos.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>aci</category><category>aks</category><category>azure</category><category>docker</category><category>serverless</category></item><item><title>ASP.NET Core: Error de npm al generar una imagen Docker de un proyecto creado con la plantilla de React</title><link>https://www.eiximenis.dev/posts/2019-02-06-asp-net-core-error-de-npm-al-generar-una-imagen-docker-de-un-proyecto-creado-con-la-plantilla-de-react/</link><pubDate>Wed, 06 Feb 2019 18:09:40 +0000</pubDate><atom:modified>Wed, 06 Feb 2019 18:09:40 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-02-06-asp-net-core-error-de-npm-al-generar-una-imagen-docker-de-un-proyecto-creado-con-la-plantilla-de-react/</guid><description>&lt;p>He visto este problema con un proyecto generado a partir de la plantilla de SPA de React, pero quizá puede aplicar a otras plantillas de SPA (como Angular).&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category><category>reactjs</category><category>visual studio</category></item><item><title>ACI (Azure Container Instances): Serverless containers</title><link>https://www.eiximenis.dev/posts/2019-02-01-aci-azure-container-instances-serverless-containers/</link><pubDate>Fri, 01 Feb 2019 11:56:15 +0000</pubDate><atom:modified>Fri, 01 Feb 2019 11:56:15 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-02-01-aci-azure-container-instances-serverless-containers/</guid><description>&lt;p>Cuando hablamos de &lt;em>serverless&lt;/em> todo el mundo lo asociamos a las soluciones tipo FaaS como Azure Functions o Amazon Lambda, pero hay otros productos que se engloban dentro de ese paradigma y en Azure uno de los más interesantes es &lt;strong>Azure Container Instances&lt;/strong>. Del mismo modo que con una Azure Function me limito a poner código en “ejecución” y esto se ejecuta en algún sitio, usando ACI lo que hago es “poner un contenedor” que se ejecutará en&amp;hellip; bueno, donde sea. Eso es &lt;em>serverless&lt;/em> señores.&lt;/p>
&lt;p>Con este post quiero iniciar una pequeña serie dedicada a ACI, como ACI se compara con su &lt;a href="https://www.youtube.com/watch?v=B90D3Eq7KjU">primo Zumosol&lt;/a> (AKS) y como AKS y ACI habilitan interesantes escenarios (altísima escalabilidad y workloads mixtos de contenedores).&lt;/p></description><dc:creator>eiximenis</dc:creator><category>aci</category><category>aks</category><category>azure</category><category>docker</category><category>serverless</category></item><item><title>Crear imágenes Docker de proyectos netcore en varias versiones del framework</title><link>https://www.eiximenis.dev/posts/2018-11-29-crear-imagenes-docker-de-proyectos-netcore-en-varias-versiones-del-framework/</link><pubDate>Thu, 29 Nov 2018 14:33:33 +0000</pubDate><atom:modified>Thu, 29 Nov 2018 14:33:33 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-11-29-crear-imagenes-docker-de-proyectos-netcore-en-varias-versiones-del-framework/</guid><description>&lt;p>Imagina que estás probando alguna versión &lt;em>release&lt;/em> de netcore (pongamos la 2.2-preview3) y quieres generar imágenes Docker de tu proyecto para esa imagen. Pero a la vez quieres también crear las imágenes usando la última versión estable (pongamos la 2.1).&lt;/p>
&lt;p>&lt;strong>Asumiendo que el código fuente es compatible&lt;/strong>, ¿como puedes gestionar eso sin morir en el intento?&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>netcore</category></item><item><title>Crear imágenes Docker de una app SPA pura y… como configurarla</title><link>https://www.eiximenis.dev/posts/2018-10-26-crear-imagenes-docker-de-una-app-spa-pura-y-como-configurarla/</link><pubDate>Fri, 26 Oct 2018 16:44:13 +0000</pubDate><atom:modified>Fri, 26 Oct 2018 16:44:13 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-10-26-crear-imagenes-docker-de-una-app-spa-pura-y-como-configurarla/</guid><description>&lt;p>El otro día habé de &lt;a href="http://geeks.ms/etomas/2018/10/25/generar-imagenes-docker-de-proyectos-spa-de-netcore/">como crear imágenes Docker para las aplicaciones SPA de .NET Core&lt;/a>. Hoy quiero comentaros como crear imágenes Docker para aplicaciones SPA puras y un tema importante al respecto: &lt;strong>como configurarlas&lt;/strong>.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category></item><item><title>Generar imágenes Docker de proyectos SPA de netcore</title><link>https://www.eiximenis.dev/posts/2018-10-25-generar-imagenes-docker-de-proyectos-spa-de-netcore/</link><pubDate>Thu, 25 Oct 2018 14:04:52 +0000</pubDate><atom:modified>Thu, 25 Oct 2018 14:04:52 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-10-25-generar-imagenes-docker-de-proyectos-spa-de-netcore/</guid><description>&lt;p>¡Buenas!&lt;/p>
&lt;p>Cuando creas un proyecto SPA de netcore, ya sea mediante VS o bien usando &lt;em>dotnet new&lt;/em> y alguna plantilla SPA como react (&lt;em>dotnet new react&lt;/em>), se genera una estructura parecida a la siguiente:&lt;/p>
&lt;p>&lt;a href="https://geeks.ms/etomas/wp-content/uploads/sites/154/2018/10/spa-estructura.png">&lt;img class="alignnone size-full wp-image-2195" src="https://geeks.ms/etomas/wp-content/uploads/sites/154/2018/10/spa-estructura.png" alt="Estructura ficheros proyecto SPA" width="249" height="293" />&lt;/a>&lt;/p>
&lt;p>La carpeta “ClientApp” contiene todo el código de cliente (javascript, CSS y demás) mientras que el resto es el código netcore que se limita a “lanzar” la SPA.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>Runtimes de contenedores</title><link>https://www.eiximenis.dev/posts/2018-07-16-runtimes-de-contenedores/</link><pubDate>Mon, 16 Jul 2018 16:33:11 +0000</pubDate><atom:modified>Mon, 16 Jul 2018 16:33:11 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-07-16-runtimes-de-contenedores/</guid><description>&lt;p>Una de las preguntas más frecuentes que me hacen sobre contenedores es hasta que punto penalizan el rendimiento. Es una pregunta muy lógica ya que al final los contenedores ofrecen un cierto nivel de aislamiento, &lt;em>parecen&lt;/em> máquinas virtuales&amp;hellip; Algo han de penalizar, ¿no?. En esta entrada voy a hablar de los &lt;em>runtimes&lt;/em> de contenedores, para que entendamos un poco más qué significa ejecutar un contenedor.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category></item><item><title>Desplegar una aplicación ASP.NET Core 2.1 con https en Docker</title><link>https://www.eiximenis.dev/posts/2018-07-02-desplegar-una-aplicacion-asp-net-core-2-1-con-https-en-docker/</link><pubDate>Mon, 02 Jul 2018 15:49:12 +0000</pubDate><atom:modified>Mon, 02 Jul 2018 15:49:12 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-07-02-desplegar-una-aplicacion-asp-net-core-2-1-con-https-en-docker/</guid><description>&lt;p>Una de las novedades de ASP.NET Core 2.1 es que redirige automáticamente todo el tráfico de http a https y, además, fuerza el uso de HSTS. Sobre https nada que decir, seguro que todos lo conocéis.&lt;/p>
&lt;p>Sobre HSTS simplemente comentar que es un protocolo mediante el cual el servidor informa a los &lt;em>user-agents&lt;/em> de que solo acepta conexiones seguras, es decir que deben usar HTTPS para acceder a sus recursos. A pesar de que HSTS tiene sus limitaciones (y que para evitarlas sería necesaria un protocolo a nivel de DNS y no de servidores) su uso es una práctica imprescindible en seguridad web. De hecho **hoy en día NO HAY EXCUSA PARA NO USAR HTTPS NI HSTS **en cualquier sitio web. Da absolutamente igual lo que haga. No usar https ni hsts es una negligencia que debería avergonzar a cualquiera.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>Usar vscode para depurar tus contenedores netcore</title><link>https://www.eiximenis.dev/posts/2018-06-15-usar-vscode-para-depurar-tus-contenedores-netcore/</link><pubDate>Fri, 15 Jun 2018 11:14:24 +0000</pubDate><atom:modified>Fri, 15 Jun 2018 11:14:24 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-06-15-usar-vscode-para-depurar-tus-contenedores-netcore/</guid><description>&lt;p>Una de las ventajas que tiene **Visual Studio 2017 es el &lt;a href="https://geeks.ms/etomas/2017/07/27/las-herramientas-de-docker-de-vs2017/">soporte de depuración para contenedores netcore&lt;/a>. **A partir de la versión 15.7 el soporte está relativamente maduro soportando algunos escenarios que daban errores en versiones anteriores (p. ej. dos servicios compose usando la misma imagen).&lt;/p>
&lt;p>Pero&amp;hellip; ¿y si no podemos/queremos usar Visual Studio? ¿Tenemos alguna alternativa? Pues sí: &lt;strong>usar visual studio code&lt;/strong>, y aunque el &lt;em>workflow&lt;/em> no es tan sencillo como en Visual Studio, al final se puede conseguir algo similar: ejecutar y depurar un contenedor. ¡Vamos allá!&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>depuracion</category><category>docker</category></item><item><title>Docker: Imágenes Windows y Linux con un solo Dockerfile. Sí, pero…</title><link>https://www.eiximenis.dev/posts/2018-06-12-docker-imagenes-windows-y-linux-con-un-solo-dockerfile-si-pero/</link><pubDate>Tue, 12 Jun 2018 15:28:11 +0000</pubDate><atom:modified>Tue, 12 Jun 2018 15:28:11 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-06-12-docker-imagenes-windows-y-linux-con-un-solo-dockerfile-si-pero/</guid><description>&lt;p>Una de las características menos conocidas de Docker son las imágenes multi-arch. Es una característica que agradecerás si trabajas tanto en contenedores Linux como Windows.&lt;/p>
&lt;p>Como ya debes saber, Docker no permite ejecutar contenedores cuyos binarios no sean los mismos de la plataforma que los hospeda: es decir, si estás en Windows solo puedes ejecutar contenedores cuyos binarios sean Windows y si estás en Linux pues lo mismo. Y sí, Docker CE For Windows “hace tramas” para permitirte ejecutar contenedores Linux: los ejecuta en una máquina virtual Hyper-V.&lt;/p>
&lt;p>Si desarrollas un producto multi-plataforma y quieres ofrecer contenedores tanto Linux como Windows, el uso de imágenes multi-arch es algo que, como digo, vas a agradecer, &lt;strong>ya que te permite usar un solo Dockerfile&lt;/strong> para generar ambas imágenes.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>HttpClient en C# y servicios de Docker escalados.</title><link>https://www.eiximenis.dev/posts/2018-06-11-httpclient-en-c-y-servicios-de-docker-escalados/</link><pubDate>Mon, 11 Jun 2018 11:09:25 +0000</pubDate><atom:modified>Mon, 11 Jun 2018 11:09:25 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-06-11-httpclient-en-c-y-servicios-de-docker-escalados/</guid><description>&lt;p>En este post vamos a ver como escalar servicios, tanto en Compose, como en Swarm como en Kubernetes y luego veremos algunas consideraciones cuando usemos HttpClient desde el cliente al acceder a un servidor escalado.&lt;/p>
&lt;p>Nos centramos en el escenario de escalado básico, es decir, sin demasiada lógica.&lt;/p>
&lt;p>&lt;strong>[Autobombo]:&lt;/strong> Si estás interesado en temas de Docker y Kubernetes, échale un vistazo a &lt;a href="https://www.campusmvp.es/catalogo/Product-Docker-y-Kubernetes-desarrollo-y-despliegue-de-aplicaciones-basadas-en-contenedores_237.aspx">mi curso de Docker y Kubernetes en CampusMVP&lt;/a>.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category><category>kubernetes</category></item><item><title>Monitorizando nuestros servicios en Kubernetes con Beatpulse</title><link>https://www.eiximenis.dev/posts/2018-06-03-monitorizando-nuestros-servicios-en-kubernetes-con-beatpulse/</link><pubDate>Sun, 03 Jun 2018 16:58:34 +0000</pubDate><atom:modified>Sun, 03 Jun 2018 16:58:34 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-06-03-monitorizando-nuestros-servicios-en-kubernetes-con-beatpulse/</guid><description>&lt;p>&lt;strong>&lt;em>Disclaimer&lt;/em>:&lt;/strong> &lt;span style="text-decoration: underline;">En ese post hablo de una librería (Beatpulse) de la que soy contribuidor&lt;/span> (lo aclaro, para que no haya ningún malentendido).&lt;/p>
&lt;p>En todo sistema distribuído es importante disponer de un mecanismo que permita saber en todo momento &lt;strong>si un servicio está funcionando o no&lt;/strong>. Es cierto que el concepto de “funcionando” es algo difuso de definir, pero yendo a mínimos deberíamos saber si un sistema se ha caído o no.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category><category>kubernetes</category></item><item><title>Tip: Acceder a Minikube desde WSL</title><link>https://www.eiximenis.dev/posts/2018-05-31-tip-acceder-a-minikube-desde-wsl/</link><pubDate>Thu, 31 May 2018 14:48:36 +0000</pubDate><atom:modified>Thu, 31 May 2018 14:48:36 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-05-31-tip-acceder-a-minikube-desde-wsl/</guid><description>&lt;p>Hoy me han preguntado eso, así que mira, aprovecho para apuntarlo aquí, por si alguien más tiene esta duda.&lt;/p>
&lt;p>La situación es la siguiente: tienes minikube instalado y funcionando en Windows, pero quieres usarlo desde un &lt;em>kubectl&lt;/em> ejecutándose en un terminal WSL. ¿Es posible?&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category></item><item><title>Añadir soporte TLS a tu Kubernetes en Azure con Let's Encrypt</title><link>https://www.eiximenis.dev/posts/2018-04-13-anadir-soporte-tls-a-tu-kubernetes-en-azure-con-lets-encrypt/</link><pubDate>Fri, 13 Apr 2018 16:05:06 +0000</pubDate><atom:modified>Fri, 13 Apr 2018 16:05:06 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-04-13-anadir-soporte-tls-a-tu-kubernetes-en-azure-con-lets-encrypt/</guid><description>&lt;p>¡Buenas! En este post vamos a ver como añadir soporte TLS a tu clúster de Kubernetes desplegado en ACS o AKS. Hace tiempo escribí un post sobre como añadir certificados de desarrollo a un servicio NGINX que tuvieses en Kubernetes. Aunque lo dicho en &lt;a href="https://geeks.ms/etomas/2017/10/16/configurar-ssl-en-un-cluster-de-k8s/">aquel post&lt;/a> sigue siendo válido, hay una manera mucho más sencilla con la condición de que &lt;a href="https://geeks.ms/etomas/2018/01/03/kubernetes-3-controladores-ingress/">usemos &lt;em>ingress&lt;/em> para exponer nuestros servicios al exterior&lt;/a>.&lt;/p>
&lt;p>En este post parto de la suposición de que:&lt;/p>
&lt;ol>
&lt;li>Tienes un clúster de Kubernetes en ACS/AKS y &lt;em>kubectl&lt;/em> configurado para atacar a él&lt;/li>
&lt;li>Tienes el controlador &lt;em>ingress&lt;/em> de NGINX instalado en el clúster exponiendo cualquier servicio&lt;/li>
&lt;/ol>
&lt;p>Es decir, haciendo http://IP-CLUSTER/servicio obtienes alguna respuesta. Lo que queremos es poder usar https en su lugar.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category><category>Sin categoría</category></item><item><title>Ejecutar pruebas de tus contenedores en VSTS</title><link>https://www.eiximenis.dev/posts/2018-03-07-ejecutar-pruebas-de-tus-contenedores-en-vsts/</link><pubDate>Wed, 07 Mar 2018 12:33:37 +0000</pubDate><atom:modified>Wed, 07 Mar 2018 12:33:37 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-03-07-ejecutar-pruebas-de-tus-contenedores-en-vsts/</guid><description>&lt;p>Si desarrollas con Docker es probable que uses &lt;a href="https://geeks.ms/etomas/2017/11/28/docker-multi-stage-builds-o-como-compilar-casi-cualquier-cosa-sin-tener-que-instalar-nada/">&lt;em>multi-stage builds&lt;/em>&lt;/a> para crear tus contenedores, en este caso unificas bajo un mismo Dockerfile la creación del binario (usando una imagen de compilación) y la creación de la imagen final (basandote en una imagen de &lt;em>runtime&lt;/em>).&lt;/p>
&lt;p>Ahora bien, si usas un pipeline de CI/CD con VSTS&amp;hellip; ¿como gestionar los tests de esos contenedores? Eso es lo que vamos a discutir en este post.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category><category>Sin categoría</category></item><item><title>Gestionar la configuración en asp.net core y Docker</title><link>https://www.eiximenis.dev/posts/2018-01-31-gestionar-la-configuracion-en-asp-net-core-y-docker/</link><pubDate>Wed, 31 Jan 2018 12:40:32 +0000</pubDate><atom:modified>Wed, 31 Jan 2018 12:40:32 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-01-31-gestionar-la-configuracion-en-asp-net-core-y-docker/</guid><description>&lt;p>Cuando desarrollamos una aplicación en asp.net core que queremos terminar ejecutando con Docker, el como gestionar la configuración puede causarnos más de un quebradero de cabeza.&lt;/p>
&lt;p>En este post voy a comentar, brevemente, como podemos gestionar varios escenarios de configuración.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>Asp.Net Core – solucionar error al publicar en docker (assembly not found)</title><link>https://www.eiximenis.dev/posts/2018-01-24-asp-net-core-solucionar-error-al-publicar-en-docker-assembly-not-found/</link><pubDate>Wed, 24 Jan 2018 08:34:23 +0000</pubDate><atom:modified>Wed, 24 Jan 2018 08:34:23 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-01-24-asp-net-core-solucionar-error-al-publicar-en-docker-assembly-not-found/</guid><description>&lt;p>Buenas! Imagina que tienes una aplicación hecha en Asp.Net Core y que referencia al &lt;a href="https://geeks.ms/etomas/2017/12/26/el-metapaquete-microsoft-aspnetcore-all/">metapaquete Microsoft.AspNetCore.All&lt;/a>. También tienes un Dockerfile y un fichero compose para generar la imagen &lt;a href="https://geeks.ms/etomas/2017/11/28/docker-multi-stage-builds-o-como-compilar-casi-cualquier-cosa-sin-tener-que-instalar-nada/">usando una &lt;/a>&lt;em>&lt;a href="https://geeks.ms/etomas/2017/11/28/docker-multi-stage-builds-o-como-compilar-casi-cualquier-cosa-sin-tener-que-instalar-nada/">multi-stage build&lt;/a>.&lt;/em>&lt;/p>
&lt;p>La imagen se genera sin problemas pero al ejecutarla recibes un error y no arranca.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net core</category><category>docker</category></item><item><title>Kubernetes (3) – Controladores Ingress</title><link>https://www.eiximenis.dev/posts/2018-01-03-kubernetes-3-controladores-ingress/</link><pubDate>Wed, 03 Jan 2018 16:48:58 +0000</pubDate><atom:modified>Wed, 03 Jan 2018 16:48:58 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-01-03-kubernetes-3-controladores-ingress/</guid><description>&lt;p>Seguimos con esta serie de posts sobre Kubernetes. Los posts anteriores:&lt;/p>
&lt;ol>
&lt;li>&lt;a href="https://geeks.ms/etomas/2017/12/19/kubernetes-1-componentes-de-kubernetes/">Componentes de Kubernetes&lt;/a> (donde vimos los distintos componentes de Kubernetes y como usar &lt;a href="https://github.com/kubernetes/minikube">Minikube&lt;/a> para ejecutarlo en local).&lt;/li>
&lt;li>&lt;a href="https://geeks.ms/etomas/2017/12/21/kubernetes-2-modelo-de-aplicacion/">Modelo de aplicación&lt;/a> (donde vimos como crear nuestra primera aplicación en k8s).&lt;/li>
&lt;/ol>
&lt;p>En este tercer post veremos que son los recursos &lt;em>ingress&lt;/em> y los controladores &lt;em>ingress&lt;/em> y que ventajas nos aportan.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category><category>Sin categoría</category></item><item><title>Kubernetes (2) – Modelo de aplicación</title><link>https://www.eiximenis.dev/posts/2017-12-21-kubernetes-2-modelo-de-aplicacion/</link><pubDate>Thu, 21 Dec 2017 11:18:03 +0000</pubDate><atom:modified>Thu, 21 Dec 2017 11:18:03 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-12-21-kubernetes-2-modelo-de-aplicacion/</guid><description>&lt;p>Si conoces compose conocerás su “modelo de aplicación”. Es un modelo sencillo, contiene básicamente &lt;em>servicios.&lt;/em> Un servicio en compose no es nada más que una imagen de Docker y su configuración asociada.  Luego cuando levantamos una aplicación compose con &lt;code>docker-compose up&lt;/code> se crea uno (o varios) contenedor por cada servicio y listos.&lt;/p>
&lt;p>Pero Kubernetes tiene su propio modelo de aplicación radicalmente distinto. En este post vamos a ver (de forma simplificada) cual es el modelo de aplicación que tiene Kubernetes y ¡desplegaremos nuestra primera aplicación!&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category><category>Sin categoría</category></item><item><title>Kubernetes (1): Componentes de Kubernetes</title><link>https://www.eiximenis.dev/posts/2017-12-19-kubernetes-1-componentes-de-kubernetes/</link><pubDate>Tue, 19 Dec 2017 11:10:29 +0000</pubDate><atom:modified>Tue, 19 Dec 2017 11:10:29 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-12-19-kubernetes-1-componentes-de-kubernetes/</guid><description>&lt;p>Bueno, con este post empiezo una serie de posts sobre &lt;a href="https://kubernetes.io/">Kubernetes&lt;/a>. Tengo varios posts en borrador, pero creo que antes de publicarlos puede estar bien una pequeña introducción a Kubernetes: qué es. Y de esto va este post.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>kubernetes</category></item><item><title>Docker multi-stage builds… o como compilar (casi) cualquier cosa sin tener que instalar nada.</title><link>https://www.eiximenis.dev/posts/2017-11-28-docker-multi-stage-builds-o-como-compilar-casi-cualquier-cosa-sin-tener-que-instalar-nada/</link><pubDate>Tue, 28 Nov 2017 12:58:09 +0000</pubDate><atom:modified>Tue, 28 Nov 2017 12:58:09 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-11-28-docker-multi-stage-builds-o-como-compilar-casi-cualquier-cosa-sin-tener-que-instalar-nada/</guid><description>&lt;p>Poco a poco los contenedores, y Docker en especial, se han ido abriendo paso en nuestro &lt;em>workflow&lt;/em> diario. Y si al principio era tan solo un mecanismo para encapsular aplicaciones, luego también vimos en ellos una magnífica opción para evitar tener que instalar mil dependencias en las máquinas de desarrollo y finalmente para compilar cualquier proyecto&amp;hellip; sin tener que instalar ningún SDK en local.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>Sin categoría</category></item><item><title>Las herramientas de Docker de VS2017</title><link>https://www.eiximenis.dev/posts/2017-07-27-las-herramientas-de-docker-de-vs2017/</link><pubDate>Thu, 27 Jul 2017 15:50:25 +0000</pubDate><atom:modified>Thu, 27 Jul 2017 15:50:25 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-07-27-las-herramientas-de-docker-de-vs2017/</guid><description>&lt;p>Una de las novedades de VS2017 es el soporte integrado para Docker: podemos desplegar fácilmente nuestras soluciones en contenedores locales y depurar nuestro código Docker que se ejecuta en un contenedor. &lt;strong>Pero… ¿cómo funciona exactamente?&lt;/strong>&lt;/p>
&lt;p>**&lt;/p>
&lt;p>**&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>visual studio</category></item><item><title>Docker para el desarrollador de asp.net (iii)</title><link>https://www.eiximenis.dev/posts/2016-11-24-docker-para-el-desarrollador-de-asp-net-iii/</link><pubDate>Thu, 24 Nov 2016 09:27:48 +0000</pubDate><atom:modified>Thu, 24 Nov 2016 09:27:48 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2016-11-24-docker-para-el-desarrollador-de-asp-net-iii/</guid><description>&lt;p>En el &lt;a href="http://geeks.ms/etomas/2016/11/22/docker-para-el-desarrollador-asp-net-ii/" target="_blank" rel="noopener noreferrer">post anterior&lt;/a> vimos como empaquetar y desplegar en Docker una sencilla aplicación (un &lt;em>hello world&lt;/em>) en asp.net core. En este post vamos a ver como desplegar en Docker una aplicación asp.net core (con sus controladores y vistas) y también ver como lo podemos usar usando una imagen base que no tenga el SDK, solo el runtime.&lt;/p>
&lt;p>¡Vamos allá!&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net 5</category><category>asp.net vNext</category><category>docker</category></item><item><title>Docker para el desarrollador asp.net (ii)</title><link>https://www.eiximenis.dev/posts/2016-11-22-docker-para-el-desarrollador-asp-net-ii/</link><pubDate>Tue, 22 Nov 2016 12:30:46 +0000</pubDate><atom:modified>Tue, 22 Nov 2016 12:30:46 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2016-11-22-docker-para-el-desarrollador-asp-net-ii/</guid><description>&lt;p>Seguimos con esta sobre el uso de Docker desde el punto de vista de un desarrollador asp.net (core). En este caso &lt;strong>vamos a construir nuestra primera imagen Docker&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>Nota:&lt;/strong> Visual Studio 2017 incorpora de serie las &lt;em>Docker Tools&lt;/em> que automatizan todo lo que veremos en estos artículos. Tiempo tendremos, más adelante en esta serie, de hablar de las &lt;em>Docker Tools&lt;/em>. La razón de hacerlo primero todo “manual” es porque el objetivo de esta serie es ayudarte a que entiendas Docker, no presentarte el “botón mágico” que se encarga de todo. Yo, es que soy de la vieja escuela: me gusta entender las cosas (al menos hasta donde puedo).&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net 5</category><category>asp.net vNext</category><category>docker</category></item><item><title>Docker para el desarrollador asp.net (i)</title><link>https://www.eiximenis.dev/posts/2016-11-21-docker-para-el-desarrollador-asp-net-i/</link><pubDate>Mon, 21 Nov 2016 10:52:01 +0000</pubDate><atom:modified>Mon, 21 Nov 2016 10:52:01 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2016-11-21-docker-para-el-desarrollador-asp-net-i/</guid><description>&lt;p>Buenas! Vamos a &lt;strong>empezar una serie de posts&lt;/strong> dedicadas a &lt;em>Docker&lt;/em> desde el punto de vista de un desarrollador asp.net. &lt;strong>Empezaremos por lo más básico pero nos iremos adentrando un poco en el mundo de Docker&lt;/strong>. El objetivo es que terminemos teniendo unos conocimientos &lt;em>medios&lt;/em> que nos permitan entender que es Docker, como funciona, qué ventajas tiene y como usarlo (y cuando) en arquitecturas más complejas donde haya más de un contenedor. Pero… &lt;strong>empecemos por el principio&lt;/strong>.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net 5</category><category>asp.net vNext</category><category>docker</category></item></channel></rss>