{"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\/ko\/configure-official-couchbase-docker-test\/","title":{"rendered":"\ud14c\uc2a4\ud2b8 \ub7f0\ud0c0\uc784\uc5d0 \ud14c\uc2a4\ud2b8 \ucee8\ud14c\uc774\ub108\ub85c \uacf5\uc2dd \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \uad6c\uc131\ud558\uae30"},"content":{"rendered":"<p>\uc5d0\uc11c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/unit-integration-tests-couchbase-docker-container\/\">\uc774\uc804<\/a> <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/create-couchbase-docker-images-testcontainers\/\">\ube14\ub85c\uadf8<\/a> \uc0ac\uc6a9 \ubc29\ubc95\uc744 \uc124\uba85\ud55c \uac8c\uc2dc\ubb3c <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> \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud558\uc5ec \ud14c\uc2a4\ud2b8\ud569\ub2c8\ub2e4. \ub450 \uac8c\uc2dc\ubb3c \ubaa8\ub450 \ud074\ub7ec\uc2a4\ud130\uc640 \ub370\uc774\ud130\uac00 \uc774\ubbf8 \uad6c\uc131\ub41c \uc0c1\ud0dc\uc5d0\uc11c \uc790\uccb4 Couchbase Docker \uc774\ubbf8\uc9c0\ub97c \ube4c\ub4dc\ud574\uc57c \ud55c\ub2e4\ub294 \uc694\uad6c \uc0ac\ud56d\uc774 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \ud14c\uc2a4\ud2b8 \uc124\uc815 \ub2e8\uacc4\uc5d0\uc11c \uacf5\uc2dd Docker \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6d0\ud558\ub294 \ub300\ub85c \ud074\ub7ec\uc2a4\ud130\ub97c \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\ub824\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc0ac\uc6a9\uc790 \uc815\uc758 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud14c\uc2a4\ud2b8 \ucee8\ud14c\uc774\ub108<\/h2>\n<p>\ud14c\uc2a4\ud2b8 \ucee8\ud14c\uc774\ub108\ub294 \uc774\ubbf8 \uba87 \uac00\uc9c0 \ud2b9\uc815 \uc720\ud615\uc758 \ucee8\ud14c\uc774\ub108\ub97c \uc9c0\uc6d0\ud558\ub294\ub370, \ud2b9\ud788 \uad00\uacc4\ud615 \uc138\uacc4\uc5d0\uc11c \ubcfc \uc218 \uc788\ub4ef\uc774 <a href=\"https:\/\/testcontainers.viewdocs.io\/testcontainers-java\/usage\/database_containers\/\">\ubb38\uc11c<\/a>. \uae30\ubcf8 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 JDBC \uc5f0\uacb0\uacfc \uac19\uc740 \uba87 \uac00\uc9c0 \uace0\uae09 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uac19\uc740 \ub9e5\ub77d\uc5d0\uc11c \ud14c\uc2a4\ud2b8 \uc911\uc5d0 \ud074\ub7ec\uc2a4\ud130\uc640 \ubc84\ud0b7\uc744 \uad6c\uc131\ud560 \uc218 \uc788\ub294 \uc0ac\uc6a9\uc790 \uc815\uc758 CouchbaseContainer\ub97c \ub9cc\ub4e4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ud568\uc218\ub294 \ub3c4\ucee4 \uc774\ubbf8\uc9c0\ub97c \uc2dc\uc791\ud558\uace0 \uad6c\uc131\ub41c CouchbaseCluster \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. \uba3c\uc800 \uae30\ubcf8 \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \uc2dd\ubcc4\uc790\ub97c \uc815\uc758\ud558\uace0 Liveness \ud3ec\ud2b8\ub97c \ud3ec\ud2b8 8091\ub85c \uc815\uc758\ud569\ub2c8\ub2e4. \uc774 \ud3ec\ud2b8\ub294 '\/ui\/index.html#\/' \uacbd\ub85c\uc5d0 \ub300\ud55c \uae30\ubcf8 HTTP \ub300\uae30 \uc804\ub7b5\uc5d0 \uc758\ud574 \ud14c\uc2a4\ud2b8\ub420 \ud3ec\ud2b8\uc785\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\uc5d0 \ub3c4\ub2ec\ud558\uba74 \ud074\ub7ec\uc2a4\ud130 \uc124\uc815\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/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>\ub450 \ubc88\uc9f8 \ub2e8\uacc4\ub294 \uad6c\uc131 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud558\uc5ec \ud544\uc694\ud55c \ubaa8\ub4e0 \ud3ec\ud2b8\ub97c \ub178\ucd9c\ud558\uace0 HTTP \ub300\uae30 \uc804\ub7b5\uc744 \uc124\uc815\ud558\ub294 \uac83\uc785\ub2c8\ub2e4,<\/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>\uc774 \uc2dc\uc810\uc5d0\uc11c \uc77c\ubc18 \ucee8\ud14c\uc774\ub108\ub97c \ud14c\uc2a4\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Couchbase\ub97c \uad6c\uc131\ud574\uc57c \ud558\ub294 \uc0c1\ud0dc\uc5d0\uc11c \uc774\ubbf8\uc9c0\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\ubc95\uc0ac\uc758 \ubaa8\ub4e0 \ub2e8\uacc4\ub97c \uac70\uccd0\uc57c \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ub2e8\uacc4\ub294 CLI \ub3c4\uad6c \ub610\ub294 REST API\ub97c \ud1b5\ud574 \uc790\ub3d9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130\ub97c \uc124\uc815\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc138 \uac00\uc9c0 \ud544\uc218 \ud638\ucd9c\uc744 \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4. \ud558\ub098\ub294 \ub7a8 \ud560\ub2f9\ub7c9\uc744 \uc124\uc815\ud558\ub294 \uac83\uc774\uace0, \ud558\ub098\ub294 \uad00\ub9ac\uc790 \uc0ac\uc6a9\uc790\uc758 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638\ub97c \uc124\uc815\ud558\ub294 \uac83\uc774\uace0, \ub2e4\ub978 \ud558\ub098\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc11c\ube44\uc2a4(\ud0a4\/\uac12, \uc778\ub371\uc2a4, \ucffc\ub9ac \ubc0f fts)\ub97c \uc124\uc815\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>curl\uc744 \uc0ac\uc6a9\ud558\uba74 \uc774\ub7ec\ud55c \ud638\ucd9c\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/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>Java\uc5d0\uc11c POST\ub97c \uc218\ud589\ud558\ub294 \ubc29\ubc95\uc740 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc73c\uba70, \ub2e4\uc74c\uc740 \uadf8 \uc608\uc785\ub2c8\ub2e4:<\/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>\uc774 \ubaa8\ub4e0 \ud1b5\ud654\ub294 <code>initCluster<\/code> \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud638\ucd9c\uc758 \ub0b4\uc6a9\uc740 \ucee8\ud14c\uc774\ub108\uc5d0 \uc81c\uacf5\ub41c \uad6c\uc131\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9d1\ub2c8\ub2e4. \uba87 \uac00\uc9c0 \uba54\uc11c\ub4dc\ub97c \ucd94\uac00\ud558\uc5ec \ud65c\uc131\ud654\ud560 \uc11c\ube44\uc2a4, \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \ube44\ubc00\ubc88\ud638, \ub7a8 \ud560\ub2f9\ub7c9 \ub610\ub294 \uc124\uce58\ud560 \uc0d8\ud50c \ubc84\ud0b7\uc744 \uc815\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud55c \ud6c4, CouchbaseEnvironment\uc640 CouchbaseCluster\ub97c \ub178\ucd9c\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ud658\uacbd \uac00\uc838\uc624\ub294 \ud568\uc218\ub294 <code>initCluster<\/code> \ub97c \ucd08\uae30\ud654\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc774 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 <a href=\"https:\/\/gist.github.com\/ldoguin\/5573d45f6431ad464eb1698c229c6e4c\">\ub9de\ucda4\ud615 \ub300\uae30 \uc804\ub7b5<\/a> \uac00 \uc774\uc804 \uae00\uc5d0\uc11c \uc124\uba85\ud55c \ub300\ub85c\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \uccab \ubc88\uc9f8 \ub178\ub4dc\uac00 \uc815\uc0c1 \uc0c1\ud0dc\ub97c \ub098\ud0c0\ub0bc \ub54c\uae4c\uc9c0 '\/pools\/default'\uc5d0\uc11c \ud3f4\ub9c1\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc804\uccb4 \ud074\ub798\uc2a4\uc758 \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/ldoguin\/a9264996e325bd51bb9206e9072a2c90.js\"><\/script><\/p>\n<h2>\uc0ac\uc6a9\ubc95<\/h2>\n<p>CouchbaseContainer\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ud558\uba74 \ub429\ub2c8\ub2e4:<\/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>\ubaa8\ub4e0 \ub370\uc774\ud130 \uc0d8\ud50c\uc744 \uac00\uc838\uc628 \uc0c1\ud0dc\uc5d0\uc11c K\/V \uc11c\ube44\uc2a4\ub9cc \uc2e4\ud589\ud558\ub824\ub294 \uacbd\uc6b0:<\/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>\ubcf4\uc2dc\ub2e4\uc2dc\ud53c \uc774\uac83\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uba70 Docker\ub9cc \uc124\uce58\ub418\uc5b4 \uc788\uc73c\uba74 \ub204\uad6c\ub098 Couchbase\uc5d0 \ub300\ud574 \ud14c\uc2a4\ud2b8\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\u00a0\uacb0\ub860<\/h2>\n<p>\uc774 \uae30\ub2a5\uc774 \ub9c8\uc74c\uc5d0 \ub4dc\uc2dc\uace0 \ud14c\uc2a4\ud2b8 \uc911\uc5d0 Couchbase \ud074\ub7ec\uc2a4\ud130\ub97c \uc124\uc815\ud558\uae30 \uc704\ud55c \ucd94\uac00 \uad6c\uc131 \ubc0f \ubc14\ub85c \uac00\uae30\ub97c \uc6d0\ud558\uc2dc\uba74 \uc544\ub798 \ub313\uae00\ub85c \uc54c\ub824\uc8fc\uc138\uc694.<\/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 v25.7.1 (Yoast SEO v25.7) - 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\/ko\/configure-official-couchbase-docker-test\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\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\/ko\/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\ubd84\" \/>\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\":\"ko-KR\",\"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\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@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\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@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\":\"ko-KR\",\"@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\/ko\/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\/ko\/configure-official-couchbase-docker-test\/","og_locale":"ko_KR","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\/ko\/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\ubd84"},"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":"ko-KR","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":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/configure-official-couchbase-docker-test\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@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":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","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":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@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":"\ub85c\ub791 \ub3c4\uadc4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@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\ub294 \ud30c\ub9ac\uc5d0 \uc0ac\ub294 \uad34\uc9dc \uae08\uc18d\uacf5\ud559\ub3c4\uc785\ub2c8\ub2e4. \uc8fc\ub85c Java\ub85c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 AsciiDoc\uc73c\ub85c \uad6c\uc870\ud654\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc791\uc131\ud558\uba70 \ub370\uc774\ud130, \ub9ac\uc561\ud2f0\ube0c \ud504\ub85c\uadf8\ub798\ubc0d \ubc0f \uae30\ud0c0 \uc720\ud589\uc5b4\uc5d0 \ub300\ud574 \uc790\uc8fc \uc774\uc57c\uae30\ud569\ub2c8\ub2e4. \ub610\ud55c Clever Cloud\uc640 Nuxeo\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\ub85c \ud65c\ub3d9\ud558\uba70 \ud574\ub2f9 \ucee4\ubba4\ub2c8\ud2f0\uac00 \ub354 \ud06c\uace0 \uac15\ub825\ud558\uac8c \uc131\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uc2dc\uac04\uacfc \uc804\ubb38\uc131\uc744 \ubc14\ucce4\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc6b4\uc601\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","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\/ko\/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","first_name":"Laurent","last_name":"Doguin","user_url":"","author_category":"","description":"Laurent\ub294 \ud30c\ub9ac\uc5d0 \uc0ac\ub294 \uad34\uc9dc \uae08\uc18d\uacf5\ud559\ub3c4\uc785\ub2c8\ub2e4. \uc8fc\ub85c Java\ub85c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 AsciiDoc\uc73c\ub85c \uad6c\uc870\ud654\ub41c \ud14d\uc2a4\ud2b8\ub97c \uc791\uc131\ud558\uba70 \ub370\uc774\ud130, \ub9ac\uc561\ud2f0\ube0c \ud504\ub85c\uadf8\ub798\ubc0d \ubc0f \uae30\ud0c0 \uc720\ud589\uc5b4\uc5d0 \ub300\ud574 \uc790\uc8fc \uc774\uc57c\uae30\ud569\ub2c8\ub2e4. \ub610\ud55c Clever Cloud\uc640 Nuxeo\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\ub85c \ud65c\ub3d9\ud558\uba70 \ud574\ub2f9 \ucee4\ubba4\ub2c8\ud2f0\uac00 \ub354 \ud06c\uace0 \uac15\ub825\ud558\uac8c \uc131\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc2e0\uc758 \uc2dc\uac04\uacfc \uc804\ubb38\uc131\uc744 \ubc14\ucce4\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc5d0\uc11c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc6b4\uc601\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2351"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2351\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=2351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2351"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}