{"id":2351,"date":"2016-07-26T15:49:28","date_gmt":"2016-07-26T15:49:28","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2351"},"modified":"2025-06-13T23:03:40","modified_gmt":"2025-06-14T06:03:40","slug":"configure-official-couchbase-docker-test","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/configure-official-couchbase-docker-test\/","title":{"rendered":"Configurar la imagen Docker oficial de Couchbase en tiempo de prueba con TestContainers"},"content":{"rendered":"<p>En el <a href=\"https:\/\/www.couchbase.com\/blog\/es\/unit-integration-tests-couchbase-docker-container\/\">anterior<\/a> <a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-couchbase-docker-images-testcontainers\/\">blog<\/a> posts expliqu\u00e9 c\u00f3mo utilizar <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/install\/deploy-with-docker-hub.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Docker<\/a> contenedores ejecutando Couchbase durante tus pruebas. Ambos post ten\u00edan como requisito que tuvieras que construir tu propia imagen Docker de Couchbase con el cluster y los datos ya configurados. En este post te contar\u00e9 c\u00f3mo puedes usar nuestra imagen Docker oficial y configurar el Cluster a tu gusto durante la fase de configuraci\u00f3n de tu test.<\/p>\n<h2>Un Couchbase TestContainer personalizado<\/h2>\n<p>TestContainers ya soporta varios tipos espec\u00edficos de contenedores, especialmente en el mundo relacional como se puede ver en su <a href=\"https:\/\/testcontainers.viewdocs.io\/testcontainers-java\/usage\/database_containers\/\">documentaci\u00f3n<\/a>. Ofrecen algunas caracter\u00edsticas avanzadas como una conexi\u00f3n JDBC que te permite usar la base de datos subyacente directamente. Con el mismo esp\u00edritu podemos crear un CouchbaseContainer personalizado que te permitir\u00e1 configurar el cluster y los buckets durante tus pruebas.<\/p>\n<p>Se encargar\u00e1 de arrancar la imagen docker y devuelve una instancia de CouchbaseCluster configurada. Primero definimos el identificador por defecto de la imagen docker y el puerto Liveness como puerto 8091. Este es el que ser\u00e1 testeado por la estrategia de espera HTTP por defecto para la ruta '\/ui\/index.html#\/'. Una vez que podamos llegar a esta p\u00e1gina podemos empezar a configurar el cluster.<\/p>\n<pre><code>    public CouchbaseContainer() {\r\n        super(\"couchbase:4.5.0\");\r\n    }\r\n\r\n    @Override\r\n    protected Integer getLivenessCheckPort() {\r\n        return getMappedPort(8091);\r\n    }\r\n<\/code><\/pre>\n<p>El segundo paso es sobrescribir el m\u00e9todo configure para asegurarnos de que exponemos todos los puertos necesarios y establecemos la estrategia de espera HTTP,<\/p>\n<pre><code>    @Override\r\n    protected void configure() {\r\n        addExposedPorts(8091, 8092, 8093, 8094, 11207, 11210, 11211, 18091, 18092, 18093);\r\n        setWaitStrategy(new HttpWaitStrategy().forPath(\"\/ui\/index.html#\/\"));\r\n    }\r\n<\/code><\/pre>\n<p>En este punto puedes probar ese contenedor gen\u00e9rico. Tendr\u00edas la imagen funcionando en un estado en el que necesitas configurar Couchbase. Necesitas seguir todos los pasos del asistente. Estos pasos se pueden automatizar a trav\u00e9s de las herramientas CLI o la API REST. Vamos a utilizar la API para configurar el cl\u00faster.<\/p>\n<p>Hay tres llamadas obligatorias que tenemos que hacer. Una para configurar las cuotas de ram, otra para configurar el nombre de usuario y la contrase\u00f1a del usuario admin y otra para configurar los servicios disponibles en el cluster (key\/value, index, query y fts).<\/p>\n<p>Usando curl esas llamadas se ver\u00edan as\u00ed:<\/p>\n<pre><code>    curl -v -X POST https:\/\/192.168.99.100:8091\/pools\/default -d memoryQuota=300 -d indexMemoryQuota=300\r\n    curl -v https:\/\/192.168.99.100:8091\/node\/controller\/setupServices -d 'services=kv%2Cn1ql%2Cindex'\r\n    curl -v -X POST curl -v -X POST https:\/\/192.168.99.100:8091\/settings\/web -d port=8091 -d username=Administrator -d password=password\r\n<\/code><\/pre>\n<p>Hay m\u00faltiples maneras de hacer un POST en Java, aqu\u00ed hay un ejemplo:<\/p>\n<pre><code>        public void callCouchbaseRestAPI(String url, String payload, String username, String password) throws IOException {\r\n            HttpURLConnection httpConnection = (HttpURLConnection) ((new URL(url).openConnection()));\r\n            httpConnection.setDoOutput(true);\r\n            httpConnection.setDoInput(true);\r\n            httpConnection.setRequestMethod(\"POST\");\r\n            httpConnection.setRequestProperty(\"Content-Type\",\r\n                    \"application\/x-www-form-urlencoded\");\r\n            if (username != null) {\r\n                String encoded = Base64.encode((username + \":\" + password).getBytes(\"UTF-8\"));\r\n                httpConnection.setRequestProperty(\"Authorization\", \"Basic \"+encoded);\r\n            }\r\n            DataOutputStream out = new DataOutputStream(httpConnection.getOutputStream());\r\n            out.writeBytes(payload);\r\n            out.flush();\r\n            out.close();\r\n            httpConnection.getResponseCode();\r\n            httpConnection.disconnect();\r\n        }\r\n<\/code><\/pre>\n<p>Todas estas llamadas se realizar\u00e1n desde el <code>initCluster<\/code> m\u00e9todo. El contenido de esas llamadas depender\u00e1 de la configuraci\u00f3n proporcionada al contenedor. Podemos a\u00f1adir algunos m\u00e9todos para definir qu\u00e9 servicios est\u00e1n habilitados, cu\u00e1les son el nombre de usuario y la contrase\u00f1a, las cuotas de ram o los buckets de muestra a instalar.<\/p>\n<p>Despu\u00e9s de implementar ese m\u00e9todo, vamos a exponer un CouchbaseEnvironnement y un CouchbaseCluster. El getter del entorno es responsable de ejecutar <code>initCluster<\/code> si a\u00fan no se ha inicializado. Este m\u00e9todo tambi\u00e9n requiere el m\u00e9todo <a href=\"https:\/\/gist.github.com\/ldoguin\/5573d45f6431ad464eb1698c229c6e4c\">estrategia de espera personalizada<\/a> escribi\u00f3 en el post anterior. B\u00e1sicamente sondea en '\/pools\/default' hasta que el primer nodo presenta un estado saludable.<\/p>\n<p>Aqu\u00ed est\u00e1 el c\u00f3digo de la clase completa:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/ldoguin\/a9264996e325bd51bb9206e9072a2c90.js\"><\/script><\/p>\n<h2>Utilizaci\u00f3n<\/h2>\n<p>Para usar el CouchbaseContainer puedes simplemente hacer algo como:<\/p>\n<pre><code>        @ClassRule\r\n        public static CouchbaseContainer couchbase = new CouchbaseContainer();\r\n\r\n        @Test\r\n        public void testSimple() throws Exception {\r\n            CouchbaseCluster cc = couchbase.geCouchbaseCluster();\r\n            ClusterManager cm = cc.clusterManager(\"Administrator\",\"password\");\r\n            BucketSettings settings = DefaultBucketSettings.builder()\r\n                    .enableFlush(true).name(\"default\").quota(100).replicas(0).type(BucketType.COUCHBASE).build();\r\n            settings = cm.insertBucket(settings);\r\n            CouchbaseWaitStrategy s = new CouchbaseWaitStrategy();\r\n            s.withBasicCredentials(\"Administrator\", \"password\");\r\n            s.waitUntilReady(couchbase);\r\n            Bucket bucket = cc.openBucket(\"default\");\r\n            Assert.assertNotNull(bucket);\r\n        }\r\n<\/code><\/pre>\n<p>Si desea que s\u00f3lo se ejecute el servicio k\/v con todas las muestras de datos importadas:<\/p>\n<pre><code>        public class CouchbaseDriverTest {\r\n\r\n            @ClassRule\r\n            public static CouchbaseContainer couchbase = new CouchbaseContainer()\r\n                    .withBeerSample(true)\r\n                    .withGamesIMSample(true)\r\n                    .withTravelSample(true)\r\n                    .withFTS(false)\r\n                    .withIndex(false)\r\n                    .withQuery(false);\r\n\r\n            @Test\r\n            public void testSimple() throws Exception {\r\n                CouchbaseCluster cc = couchbase.geCouchbaseCluster();\r\n                ClusterManager cm = cc.clusterManager(\"Administrator\",\"password\");\r\n                List buckets = cm.getBuckets();\r\n                Assert.assertNotNull(buckets);\r\n                Assert.assertTrue(buckets.size() == 3);\r\n            }\r\n        }\r\n<\/code><\/pre>\n<p>Como puedes ver esto es muy simple y permite a cualquiera ejecutar pruebas contra Couchbase siempre y cuando tengan Docker instalado.<\/p>\n<h2>\u00a0Conclusi\u00f3n<\/h2>\n<p>Dinos en los comentarios si te gusta esto y quieres que te proporcionemos configuraciones adicionales y atajos para configurar tu Cluster Couchbase durante las pruebas.<\/p>","protected":false},"excerpt":{"rendered":"<p>In the previous blog posts I explained how to use Docker containers running Couchbase during your tests. Both post had this requirements that you had to build your own Couchbase Docker image with the cluster and data already configured. In [&hellip;]<\/p>","protected":false},"author":49,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815],"tags":[1519,1877],"ppma_author":[9023],"class_list":["post-2351","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","tag-docker","tag-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Configure the Official Couchbase Docker Image at Test Runtime with TestContainers - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/configure-official-couchbase-docker-test\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers\" \/>\n<meta property=\"og:description\" content=\"In the previous blog posts I explained how to use Docker containers running Couchbase during your tests. Both post had this requirements that you had to build your own Couchbase Docker image with the cluster and data already configured. In [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/configure-official-couchbase-docker-test\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-26T15:49:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:03:40+00:00\" \/>\n<meta name=\"author\" content=\"Laurent Doguin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ldoguin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"unstructured.io\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\"},\"author\":{\"name\":\"Laurent Doguin\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\"},\"headline\":\"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers\",\"datePublished\":\"2016-07-26T15:49:28+00:00\",\"dateModified\":\"2025-06-14T06:03:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\"},\"wordCount\":539,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"docker\",\"testing\"],\"articleSection\":[\"Best Practices and Tutorials\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\",\"name\":\"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-07-26T15:49:28+00:00\",\"dateModified\":\"2025-06-14T06:03:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e\",\"name\":\"Laurent Doguin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g\",\"caption\":\"Laurent Doguin\"},\"description\":\"Laurent is a nerdy metal head who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.\",\"sameAs\":[\"https:\/\/x.com\/ldoguin\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1985-06-07\",\"gender\":\"male\",\"award\":[\"Devoxx Champion\",\"Couchbase Legend\"],\"knowsAbout\":[\"Java\"],\"knowsLanguage\":[\"English\",\"French\"],\"jobTitle\":\"Director Developer Relation & Strategy\",\"worksFor\":\"Couchbase\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/configure-official-couchbase-docker-test\/","og_locale":"es_MX","og_type":"article","og_title":"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers","og_description":"In the previous blog posts I explained how to use Docker containers running Couchbase during your tests. Both post had this requirements that you had to build your own Couchbase Docker image with the cluster and data already configured. In [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/configure-official-couchbase-docker-test\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-07-26T15:49:28+00:00","article_modified_time":"2025-06-14T06:03:40+00:00","author":"Laurent Doguin","twitter_card":"summary_large_image","twitter_creator":"@ldoguin","twitter_misc":{"Written by":"unstructured.io","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/"},"author":{"name":"Laurent Doguin","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e"},"headline":"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers","datePublished":"2016-07-26T15:49:28+00:00","dateModified":"2025-06-14T06:03:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/"},"wordCount":539,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["docker","testing"],"articleSection":["Best Practices and Tutorials"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/","url":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/","name":"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-07-26T15:49:28+00:00","dateModified":"2025-06-14T06:03:40+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Configure the Official Couchbase Docker Image at Test Runtime with TestContainers"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c0aa9b8f1ed51b7a9e2f7cb755994a5e","name":"Laurent Doguin","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/12929ce99397769f362b7a90d6b85071","url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","caption":"Laurent Doguin"},"description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.","sameAs":["https:\/\/x.com\/ldoguin"],"honorificPrefix":"Mr","birthDate":"1985-06-07","gender":"male","award":["Devoxx Champion","Couchbase Legend"],"knowsAbout":["Java"],"knowsLanguage":["English","French"],"jobTitle":"Director Developer Relation & Strategy","worksFor":"Couchbase","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/laurent-doguin\/"}]}},"authors":[{"term_id":9023,"user_id":49,"is_guest":0,"slug":"laurent-doguin","display_name":"Laurent Doguin","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b8c466908092b46634af916b6921f30187a051e4367ded7ac9b1a3f2c5692fd2?s=96&d=mm&r=g","author_category":"","last_name":"Doguin","first_name":"Laurent","job_title":"","user_url":"","description":"Laurent es un metalero empoll\u00f3n que vive en Par\u00eds. Principalmente escribe c\u00f3digo en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programaci\u00f3n reactiva y otras cosas de moda. Tambi\u00e9n fue Developer Advocate de Clever Cloud y Nuxeo, donde dedic\u00f3 su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2351"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2351"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}