{"id":31540,"date":"2023-10-18T15:36:37","date_gmt":"2023-10-18T14:36:37","guid":{"rendered":"https:\/\/www.baeldung.com\/?p=167305"},"modified":"2023-10-18T15:36:37","modified_gmt":"2023-10-18T14:36:37","slug":"how-to-reuse-testcontainers-in-java","status":"publish","type":"post","link":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/2023\/10\/18\/how-to-reuse-testcontainers-in-java\/","title":{"rendered":"How to Reuse Testcontainers in Java"},"content":{"rendered":"<p><img src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" decoding=\"async\" style=\"float: left; margin-right: 5px;\" loading=\"lazy\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-1024x536.png 1024w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-300x157.png 300w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-768x402.png 768w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-100x52.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured.png 1200w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/p>\n<h2 id=\"bd-overview\" data-id=\"overview\">1. Overview<\/h2>\n<div class=\"bd-anchor\" id=\"overview\"><\/div>\n<p>In this tutorial, we&#8217;ll learn how to reuse <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/docker-test-containers\">Testcontainers<\/a> when setting up the environment for local development and testing.<\/p>\n<p>Firstly, we&#8217;ll have to make sure we&#8217;re not shutting down the container when the application is stopped or when the test suite finishes. After that, we&#8217;ll talk about the Testcontainer<i>&#8211;<\/i>specific configuration and we&#8217;ll discuss the benefits of using the Testcontainers Desktop application. Lastly, we need to keep in mind that <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/java.testcontainers.org\/features\/reuse\/\">reusing Testcontainers<\/a> is an experimental feature and it&#8217;s not yet ready to be used in CI pipelines.<\/p>\n<h2 id=\"bd-ensure-the-testcontainer-isnt-stopped\" data-id=\"ensure-the-testcontainer-isnt-stopped\">2. Ensure the Testcontainer Isn&#8217;t Stopped<\/h2>\n<div class=\"bd-anchor\" id=\"ensure-the-testcontainer-isnt-stopped\"><\/div>\n<p>A straightforward way of enabling Testcontainers for our unit tests is to leverage their dedicated <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/junit-5-extensions\">JUnit 5 extension<\/a> through the @<em>Testcontainers<\/em> and <em>@Container<\/em> annotations.<\/p>\n<p>Let&#8217;s write a test that starts a Spring Boot application and allows it to connect to a MongoDB database running in a <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/ops\/docker-guide\">Docker<\/a> container:<\/p>\n<pre><code class=\"language-java\">@Testcontainers\r\n@SpringBootTest\r\nclass ReusableContainersLiveTest {\r\n    @Container\r\n    static MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse(&quot;mongo:4.0.10&quot;));\r\n  \r\n    \/\/ dynamic properties and test cases\r\n}<\/code><\/pre>\n<p><strong>However, the Testcontainer&#8217;s JUnit5 Extension that automatically spins up <em>MongoDBContainer<\/em> will also shuts it down after the tests. Therefore, let&#8217;s remove the <em>@Testcontainers<\/em> and <em>@Container<\/em> annotations, and manually start the container instead:<\/strong><\/p>\n<pre><code class=\"language-java\">@SpringBootTest\r\nclass ReusableContainersLiveTest {\r\n   static MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse(&quot;mongo:4.0.10&quot;));\r\n    @BeforeAll\r\n    static void beforeAll() {\r\n        mongoDBContainer.start();\r\n    }\r\n    \r\n    \/\/ dynamic properties and test cases\r\n}<\/code><\/pre>\n<p>On the other hand, we might be using <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/spring-boot-built-in-testcontainers\">Spring Boot&#8217;s built-in support for Testcontainers<\/a> during local development. In this context, we won&#8217;t use the JUnit 5 extension and this step is unnecessary.<\/p>\n<h2 id=\"bd-manage-the-testcontainer-lifecycle\" data-id=\"manage-the-testcontainer-lifecycle\">3. Manage the Testcontainer Lifecycle<\/h2>\n<div class=\"bd-anchor\" id=\"manage-the-testcontainer-lifecycle\"><\/div>\n<p>Now, we can be in full control of the container&#8217;s lifecycle. We can configure the application to reuse an existing Testcontainer\u00a0and we can manually stop it from the terminal.<\/p>\n<h3 id=\"bd-1-the-withreuse-method\" data-id=\"1-the-withreuse-method\">3.1. The <em>withReuse()<\/em> Method<\/h3>\n<div class=\"bd-anchor\" id=\"1-the-withreuse-method\"><\/div>\n<p><strong>We can mark a Testcontainer as reusable\u00a0by using the <em>withReuse()<\/em> method of its fluent API:<\/strong><\/p>\n<pre><code class=\"language-java\">static MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse(&quot;mongo:4.0.10&quot;))\r\n  .withReuse(true);<\/code><\/pre>\n<p>When we run the test for the first time, we&#8217;ll see the usual Testcontainers logs about starting the <em>MongoDBContainer. <\/em>This usually takes a few seconds:<\/p>\n<pre><code class=\"language-markdown\">23:56:42.383 [main] INFO tc.mongo:4.0.10 - Creating container for image: mongo:4.0.10\r\n23:56:42.892 [main] INFO tc.mongo:4.0.10 - Container mongo:4.0.10 is starting: d5fa298bf6...\r\n23:56:45.470 [main] INFO tc.mongo:4.0.10 - Container mongo:4.0.10 started in PT3.11239S<\/code><\/pre>\n<p>After the test finishes, we should be able to see the container still running. For example, we can check from the terminal using the <em>docker ps<\/em>\u00a0command:<\/p>\n<p><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-167306 aligncenter\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers-300x136.png\" alt=\"\" width=\"697\" height=\"316\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers-300x136.png 300w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers-1024x464.png 1024w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers-768x348.png 768w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers-100x45.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/reusing_testcontainers.png 1410w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Furthermore, when we re-run the test, the container will be reused as long as the configuration isn&#8217;t changed. As a result, the container set-up time noticeably decreases:<\/p>\n<pre><code class=\"language-markdown\">00:12:23.859 [main] INFO tc.mongo:4.0.10 - Creating container for image: mongo:4.0.10\r\n00:12:24.190 [main] INFO tc.mongo:4.0.10 - Reusing container with ID: d5fa298b... and hash: 0702144b...\r\n00:12:24.191 [main] INFO tc.mongo:4.0.10 - Reusing existing container (d5fa298b...) and not creating a new one\r\n00:12:24.398 [main] INFO tc.mongo:4.0.10 - Container mongo:4.0.10 started in PT0.5555088S<\/code><\/pre>\n<p>Lastly, the reused database contains previously inserted documents. Although this might be useful for local development, it may be harmful for testing. If we need to start fresh, we can simply clear the collection before each test.<\/p>\n<h3 id=\"bd-2-testcontainers-configuration\" data-id=\"2-testcontainers-configuration\">3.2. Testcontainers Configuration<\/h3>\n<div class=\"bd-anchor\" id=\"2-testcontainers-configuration\"><\/div>\n<p><strong>In some cases, a warning may occur, stating that <em>&#8220;Reuse was requested but the environment doesn&#8217;t support the reuse of containers&#8221;. <\/em><\/strong>This happens when the reuse\u00a0is disabled on our local Testcontainers configuration<strong>:<\/strong><\/p>\n<pre><code class=\"language-markdown\">00:23:09.461 [main] INFO tc.mongo:4.0.10 - Creating container for image: mongo:4.0.10\r\n00:23:09.463 [main] WARN tc.mongo:4.0.10 - Reuse was requested but the environment does not support the reuse of containers\r\nTo enable reuse of containers, you must set &#039;testcontainers.reuse.enable=true&#039; in a file located at C:\\Users\\Emanuel Trandafir\\.testcontainers.properties\r\n00:23:09.544 [main] INFO tc.mongo:4.0.10 - Container mongo:4.0.10 is starting: 903dd52d7...\r\n<\/code><\/pre>\n<p>To fix it, we can simply edit the <em>.testcontainers.properties<\/em> file and set <em>reuse<\/em> as <em>enabled<\/em>:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/enable_tc_reuse_from_properties.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-167307 aligncenter\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/enable_tc_reuse_from_properties-300x110.png\" alt=\"\" width=\"693\" height=\"254\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/enable_tc_reuse_from_properties-300x110.png 300w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/enable_tc_reuse_from_properties-100x37.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/enable_tc_reuse_from_properties.png 696w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/a><\/p>\n<h3 id=\"bd-3-stopping-the-container\" data-id=\"3-stopping-the-container\">3.3. Stopping the Container<\/h3>\n<div class=\"bd-anchor\" id=\"3-stopping-the-container\"><\/div>\n<p>We can manually stop the Docker container whenever we want, from the terminal. To do so, we only need to run the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/ops\/docker-stop-vs-kill\"><em>docker stop<\/em><\/a> command, followed by the container ID. Future executions of the application spin up a new Docker container.<\/p>\n<h2 id=\"bd-testcontainers-desktop\" data-id=\"testcontainers-desktop\">4. Testcontainers Desktop<\/h2>\n<div class=\"bd-anchor\" id=\"testcontainers-desktop\"><\/div>\n<p><strong>We can install the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/testcontainers.com\/desktop\/\">Testcontainer Desktop<\/a> application to easily manage the lifecycle and configuration of our Testcontainers. <\/strong><\/p>\n<p>The application requires authentication, but we can easily log in using a GitHub account. After signing in, we&#8217;ll see the Testcontainers\u00a0icon in the toolbar. If we click on it, we&#8217;ll have a few options to choose from:<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/testcontainers_desktop-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-167308 aligncenter\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/testcontainers_desktop-1-249x300.png\" alt=\"\" width=\"442\" height=\"532\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/testcontainers_desktop-1-249x300.png 249w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/testcontainers_desktop-1-100x121.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2023\/10\/testcontainers_desktop-1.png 446w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/a><\/p>\n<p>Now, executing the previously demonstrated steps is as effortless as the click of a button. For instance, we can enable or disable reusable containers with ease via <em>Preferences &gt; Enable reusable containers<\/em>. Furthermore, we have the capability to terminate the containers or freeze them before the shutdown, if more debugging is needed.<\/p>\n<h2 id=\"bd-conclusion\" data-id=\"conclusion\">5. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion\"><\/div>\n<p>In this article, we&#8217;ve learned how to reuse Testcontainers<em>\u00a0<\/em>in Java. We discovered that JUnit 5 might try to shut down the container before finishing the execution. We avoided this by manually starting the containers instead of relying on the Testcontainers&#8217; JUnit 5 extension.<\/p>\n<p>After that, we discussed the <em>withReuse() <\/em>method and other Testcontainer-specific configurations. Finally, we installed the Testcontainers Desktop application, and we saw how it can be a valuable asset for double-checking configurations when it comes to managing the Testcontainers&#8217; lifecycle.<\/p>\n<p>As always, the complete code used in this article is available\u00a0<a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/spring-boot-modules\/spring-boot-3-testcontainers\">over on GitHub<\/a>.<\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/801410903\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/801410903\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-4-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comments\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers\/feed\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&nbsp;<\/p>\n<div style=\"clear:left;\"><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comments\"><\/p>\n<h3>Comments<\/h3>\n<p><\/a><\/p>\n<ul>\n<li><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comment-14974\">In reply to Milan.   Hey, Milan.   Currently, there is no &#8230;<\/a> <i>by Loredana Crusoveanu<\/i>\n<li><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comment-14972\">Can this be applied to DockerComposeContainer?<\/a> <i>by Milan<\/i><\/ul>\n<\/div>\n<p>&#160;<\/p><\/div>\n\n<h2><b>Commercials Cooperation Advertisements:<\/b><\/h2>\r\n<p><br>(1) IT Teacher IT Freelance<br> <\/p>\r\n<a href=https:\/\/itteacheritfreelance.hk\/wordpress><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITTeacherITFreelance-Website.png alt=IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\/><\/a><p><a href=https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/findteacher>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427! <\/a><br>\r\n\r\n\u7535\u5b50\u8ba1\u7b97\u673a -\u6559\u80b2 -IT \u96fb\u8166\u73ed\u201d ( IT\u96fb\u8166\u88dc\u7fd2 ) \u63d0\u4f9b\u4e00\u500b\u65b9\u4fbf\u7684\u7535\u5b50\u8ba1\u7b97\u673a \u6559\u80b2\u5e73\u53f0, \u70ba\u5927\u5bb6\u914d\u5c0d\u4fe1\u606f\u6280\u672f, \u96fb\u8166 \u8001\u5e2b, IT freelance \u548c programming expert. \u8b93\u5927\u5bb6\u65b9\u4fbf\u5730\u5c31\u80fd\u627e\u5230\u5408\u9069\u7684\u96fb\u8166\u88dc\u7fd2, \u96fb\u8166\u73ed, \u5bb6\u6559, \u79c1\u4eba\u8001\u5e2b.  <br>\r\n\r\nWe are a education and information platform which you can find a IT private tutorial teacher or freelance. <br>\r\n\r\nAlso we provide different information about information technology, Computer, programming, mobile, Android, apple, game, movie, anime, animation\u2026 \r\n<\/p>\n<p><br>(2) ITSec<br> <\/p><a href=https:\/\/itsec.vip><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITSec-Main-Promotion-Image.png alt= https:\/\/itsec.vip\/\r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers.  \r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training.\/><\/a> \r\n<br><br> \r\n<p><a href=https:\/\/itsec.vip>www.ITSec.vip<\/a> <br> <br> \r\n<p><a href=https:\/\/sraa.com.hk>www.Sraa.com.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itsec.hk>www.ITSec.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/penetrationtest.hk>www.Penetrationtest.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itseceu.uk>www.ITSeceu.uk<\/a> <br> <br> \r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers. <br><br>\r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training. \r\n<br><br>Contact us right away. <br><br>Email (Prefer using email to contact us): <br>SalesExecutive@ITSec.vip<\/p>","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-4-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Learn how to reuse Testcontainers when setting up the environment for local development and testing.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>\u00a0<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/801410903\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-4-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>\u00a0<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>\u00a0<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>\u00a0<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/801410903\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>\u00a0<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comments\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>\u00a0<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers\/feed\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>\u00a0<\/p>\n<div><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comments\"><\/p>\n<h3>Comments<\/h3>\n<p><\/a><\/p>\n<ul>\n<li><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comment-14974\">In reply to Milan.   Hey, Milan.   Currently, there is no &#8230;<\/a> <i>by Loredana Crusoveanu<\/i><\/li>\n<li><a rel=\"NOFOLLOW\" href=\"https:\/\/www.baeldung.com\/java-reuse-testcontainers#comment-14972\">Can this be applied to DockerComposeContainer?<\/a> <i>by Milan<\/i><\/li>\n<\/ul>\n<\/div>\n<p>\u00a0<\/p><\/div>\n","protected":false},"author":865,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[22],"tags":[61,122,127,129,124,128,125,132,131,133,126,130,123,66,94,88,97,56,64,65,60,112,40,75,95,104,33,120,11600,105,101,98,115,30,29,41,86,70,69,68,72,71,26,118,108,87,46,55,48,52,54,51,50,83,62,58,57,109,35,59,63,85,79,82,96,80,27,81,114,44,42,43,45,38,39,110,117,100,111,116,73,89,90,92,91,93,84,78,37,102,34,36,77,67,74,99,113,119,28,121,32,47,49,53,103,31,76],"class_list":["post-31540","post","type-post","status-publish","format-standard","hentry","category-mobile","tag-airpods","tag-anime","tag-anime-characters","tag-anime-cosplay","tag-anime-edits","tag-anime-merchandise","tag-anime-movies","tag-anime-news","tag-anime-recommendations","tag-anime-reviews","tag-anime-series","tag-anime-streaming","tag-animes","tag-app-store","tag-app-store-samsung","tag-appgallery","tag-appgallery-oneplus","tag-apple","tag-apple-music","tag-apple-tv","tag-apple-watch","tag-bbc-sport","tag-best-mobile-games","tag-bixby","tag-bixby-xiaomi","tag-champions-league","tag-cyberpunk","tag-cyberpunk-2077","tag-docker-container","tag-fantasy-football","tag-fifa","tag-football","tag-formula-1","tag-fortnite","tag-free-fire","tag-free-mobile-games","tag-freebuds-pro","tag-galaxy-a52","tag-galaxy-note-20","tag-galaxy-s21","tag-galaxy-watch-4","tag-galaxy-z-fold-3","tag-game","tag-games","tag-golf","tag-harmonyos","tag-how-to-backup-iphone","tag-how-to-factory-reset-iphone","tag-how-to-reset-iphone","tag-how-to-restore-iphone","tag-how-to-unlock-iphone","tag-how-to-unlock-iphone-5","tag-how-to-unlock-iphone-6","tag-huawei","tag-ios","tag-ipad","tag-iphone","tag-live-soccer","tag-lol","tag-macbook","tag-macos","tag-mate-40-pro","tag-mi-11-lite","tag-mi-home-security-camera-basic-1080p","tag-mi-home-security-camera-basic-1080p-huawei","tag-mi-smart-band-6","tag-minecraft","tag-miui","tag-mlb-scores","tag-mobile-game-design","tag-mobile-game-development","tag-mobile-game-marketing","tag-mobile-game-monetization","tag-mobile-games","tag-mobile-gaming","tag-nba-scores","tag-nba-standings","tag-nfl","tag-nfl-scores","tag-nhl-scores","tag-one-ui","tag-oneplus","tag-oneplus-9-pro","tag-oneplus-buds-pro","tag-oneplus-nord-ce-5g","tag-oxygenos","tag-p40-pro-plus","tag-poco-x3-pro","tag-pokemon","tag-premier-league","tag-pubg","tag-pubg-mobile","tag-redmi-note-10-pro","tag-samsung","tag-samsung-pay","tag-soccer","tag-sports","tag-steam","tag-steeam","tag-top-10-anime","tag-valorant","tag-when-do-the-iphone-7-come-out","tag-when-does-the-iphone-7-come-out","tag-when-is-the-iphone-7-coming-out","tag-world-cup","tag-xbox-series-x","tag-xiaomi"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/31540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/users\/865"}],"replies":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/comments?post=31540"}],"version-history":[{"count":1,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/31540\/revisions"}],"predecessor-version":[{"id":31541,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/31540\/revisions\/31541"}],"wp:attachment":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/media?parent=31540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/categories?post=31540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/tags?post=31540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}