<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:16:20 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-1845] Replace postgresql-embedded by testcontainers.org</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1845</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;We cannot upgrade from postgres 10 to postgres 11, 12 or 13 as long as our back-ends still use Postgresql-embedded for unit/integration tests because Postgresql-embedded only supports postgres 9 und 10.&lt;/p&gt;

&lt;p&gt;Postgresql-embedded is is not being actively maintained anymore and recommends to switch to testcontainers.org, see announcement from April 2019: &lt;a href=&quot;https://github.com/yandex-qatools/postgresql-embedded/commit/0895ad0ad96ff27613bd1e1a351fb329a76fde22&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/yandex-qatools/postgresql-embedded/commit/0895ad0ad96ff27613bd1e1a351fb329a76fde22&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Vert.x has replaced postgresql-embedded by testcontainers.org for their unit tests eight months before in August 2018:&lt;br/&gt;
&lt;a href=&quot;https://github.com/vert-x3/vertx-mysql-postgresql-client/commit/16c538947d0e99ba3a66e4c99ccb87c9a972ffbb&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/vert-x3/vertx-mysql-postgresql-client/commit/16c538947d0e99ba3a66e4c99ccb87c9a972ffbb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;testcontainers.org starts and stops a postgresql docker container.&lt;/p&gt;

&lt;p&gt;postgresql-embedded does NOT support Linux x86-64, Linux x86-32, Windows x86-32 for PostgreSQL &amp;gt;= 11.&lt;br/&gt;
References:&lt;br/&gt;
&lt;a href=&quot;https://github.com/yandex-qatools/postgresql-embedded/commit/15685611972bacd8ba61dd7f11d4dbdcb3ba8dc1&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/yandex-qatools/postgresql-embedded/commit/15685611972bacd8ba61dd7f11d4dbdcb3ba8dc1&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://www.enterprisedb.com/downloads/postgres-postgresql-downloads&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.enterprisedb.com/downloads/postgres-postgresql-downloads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okapi has succesfully implemented postgres testcontainers.org containers for the SSL tests (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;OKAPI-787&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/OKAPI-787&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Support SSL connections to Postgres&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            OKAPI-787
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
, &lt;a href=&quot;https://github.com/folio-org/okapi/pull/936&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;pull request&lt;/a&gt;), this works fine in Jenkins.&lt;/p&gt;

&lt;p&gt;General Docker requirements of testcontainers.org: &lt;a href=&quot;https://www.testcontainers.org/supported_docker_environment/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.testcontainers.org/supported_docker_environment/&lt;/a&gt;&lt;br/&gt;
Windows Docker requirements of testcontainers.org: &lt;a href=&quot;https://www.testcontainers.org/supported_docker_environment/windows/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.testcontainers.org/supported_docker_environment/windows/&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="81054">FOLIO-1845</key>
            <summary>Replace postgresql-embedded by testcontainers.org</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5ee89462f7aa140abd82d11d">Julian Ladisch</reporter>
                                    <labels>
                            <label>R2</label>
                            <label>back-end</label>
                            <label>decision</label>
                            <label>platform-backlog</label>
                            <label>platform-core</label>
                            <label>testing</label>
                    </labels>
                <created>Tue, 5 Mar 2019 13:42:17 +0000</created>
                <updated>Wed, 14 Apr 2021 12:40:26 +0000</updated>
                            <resolved>Mon, 29 Mar 2021 12:58:23 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>11</watches>
                                                                <comments>
                                                            <comment id="192245" author="5f9abc1eb45b2e007453f423" created="Thu, 9 May 2019 15:15:10 +0000"  >&lt;p&gt;It should be fairly easy to start up and make a fresh postgres container available in FOLIO Jenkins for backend modules builds I would think. &lt;/p&gt;</comment>
                                                            <comment id="192246" author="63e2a2771b13d42998e4e706" created="Thu, 9 May 2019 15:24:11 +0000"  >&lt;p&gt;A long while ago, the CI used to provide an external PostgreSQL server. &lt;/p&gt;

&lt;p&gt;I think it was used in the early precursor to mod-inventory to test database integration&lt;/p&gt;</comment>
                                                            <comment id="192247" author="5f9abc1eb45b2e007453f423" created="Thu, 9 May 2019 15:29:05 +0000"  >&lt;p&gt;Indeed.  I ended up removing it because of the proliferation of modules using embedded postrgesql.   On the other hand using something like testcontainers.org may be easier for developers for running their unit tests locally.  &lt;/p&gt;</comment>
                                                            <comment id="192248" author="63e2a2771b13d42998e4e706" created="Thu, 9 May 2019 15:30:32 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt; Do our current backend CI builds run within a docker container, or on a native OS?&lt;/p&gt;</comment>
                                                            <comment id="192249" author="5f9abc1eb45b2e007453f423" created="Thu, 9 May 2019 15:34:03 +0000"  >&lt;p&gt;They do and it is possible to invoke other containers within the main build container. &lt;/p&gt;</comment>
                                                            <comment id="192250" author="63e2a2771b13d42998e4e706" created="Thu, 9 May 2019 16:03:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt; Oh, I didn&apos;t know it was possible to invoke containers from inside a container!&lt;/p&gt;</comment>
                                                            <comment id="192251" author="5ee89462f7aa140abd82d11d" created="Mon, 24 Jun 2019 16:59:20 +0000"  >&lt;p&gt;On my Windows laptop it takes 47 seconds to start postresql-embedded and 4 seconds to start the postgres docker container. Both times do not include the download time, the download is cached.&lt;br/&gt;
This is more than 11 times faster.&lt;/p&gt;</comment>
                                                            <comment id="192252" author="63e2a2771b13d42998e4e706" created="Wed, 14 Oct 2020 14:07:48 +0000"  >&lt;p&gt;I recently asked if all developers had access to Docker, and got the following response from &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ade4eac47-6d4e-4b50-9c3c-4a82ed705e52&quot; class=&quot;user-hover&quot; rel=&quot;557058:de4eac47-6d4e-4b50-9c3c-4a82ed705e52&quot; data-account-id=&quot;557058:de4eac47-6d4e-4b50-9c3c-4a82ed705e52&quot; accountid=&quot;557058:de4eac47-6d4e-4b50-9c3c-4a82ed705e52&quot; rel=&quot;noreferrer&quot;&gt;Taras Spashchenko&lt;/a&gt; on &lt;a href=&quot;https://folio-project.slack.com/archives/C210RP0T1/p1602665566175100?thread_ts=1602664280.173700&amp;amp;cid=C210RP0T1&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Slack&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The only tricky case that can be here is when backend developers are using windows workstations. but at least two options are possible here&lt;br/&gt;
run docker containers in the virtual box&lt;br/&gt;
install docker for windows and lose support for virtual box&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I think we need to be mindful of the developers maintaining the modules access to Docker when we roll this out&lt;/p&gt;</comment>
                                                            <comment id="192253" author="5ee89462f7aa140abd82d11d" created="Wed, 21 Oct 2020 11:55:10 +0000"  >&lt;p&gt;&lt;a href=&quot;https://github.com/MicrosoftDocs/WSL/issues/798&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/MicrosoftDocs/WSL/issues/798&lt;/a&gt; &quot;WSL2 breaks VirtualBox&quot;&lt;/p&gt;</comment>
                                                            <comment id="192254" author="5ee89462f7aa140abd82d11d" created="Fri, 4 Dec 2020 13:45:49 +0000"  >&lt;p&gt;RMB looks for command line options&lt;br/&gt;
&lt;a href=&quot;https://github.com/folio-org/raml-module-builder#command-line-options&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder#command-line-options&lt;/a&gt;&lt;br/&gt;
and environment variables&lt;br/&gt;
&lt;a href=&quot;https://github.com/folio-org/raml-module-builder#environment-variables&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder#environment-variables&lt;/a&gt;&lt;br/&gt;
and picks the PostgreSQL connection information from them if available.&lt;br/&gt;
If this is not available RMB starts embedded postgres.&lt;br/&gt;
This is used both in test code and main code.&lt;br/&gt;
Developers using Windows make use of this so that they can run tests against an existing running PostgreSQL instance ( &lt;a href=&quot;https://www.postgresql.org/download/windows/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.postgresql.org/download/windows/&lt;/a&gt; ) and avoid the 47 seconds startup time that embedded postgres needs.&lt;br/&gt;
We can keep these command line and environment options so that Windows developers can run most of the tests without the need for docker.&lt;/p&gt;</comment>
                                                            <comment id="192255" author="5f8314dfbdef80006f6f572d" created="Fri, 4 Dec 2020 21:04:36 +0000"  >&lt;p&gt;I don&apos;t think we should keep postgresql-embedded under no circumstances. Have two system: containters and real postgres. The embedded postgres takes time to boot on both Linux and Windows. Starting Docker containers also takes minutes - first time - an image is downloaded. That&apos;s a price, regardless of platform.&lt;/p&gt;

&lt;p&gt;Doesn&apos;t Docker work on Windows?&lt;/p&gt;

&lt;p&gt;As far for starting modules with &quot;no postgres&quot;, we&apos;d just use containers for that. So the &quot;embedded postgres&quot; functionality would be preserved.&lt;/p&gt;</comment>
                                                            <comment id="192256" author="5f9abc1eb45b2e007453f423" created="Fri, 8 Jan 2021 14:32:13 +0000"  >&lt;p&gt;Please remember that any containers that are created in the CI build pipeline need to be cleaned up after use. &lt;/p&gt;</comment>
                                                            <comment id="192257" author="63e2a2771b13d42998e4e706" created="Fri, 8 Jan 2021 14:48:35 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Please remember that any containers that are created in the CI build pipeline need to be cleaned up after use.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;What does that involve? Is it something that test containers doesn&apos;t do already?&lt;/p&gt;

&lt;p&gt;Does the Okapi build, which uses test containers I believe, leave containers behind?&lt;/p&gt;</comment>
                                                            <comment id="192258" author="63e2a2771b13d42998e4e706" created="Fri, 8 Jan 2021 14:53:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f8314dfbdef80006f6f572d&quot; class=&quot;user-hover&quot; rel=&quot;5f8314dfbdef80006f6f572d&quot; data-account-id=&quot;5f8314dfbdef80006f6f572d&quot; accountid=&quot;5f8314dfbdef80006f6f572d&quot; rel=&quot;noreferrer&quot;&gt;Adam Dickmeiss&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I don&apos;t think we should keep postgresql-embedded under no circumstances.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Agreed.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;As far for starting modules with &quot;no postgres&quot;, we&apos;d just use containers for that. So the &quot;embedded postgres&quot; functionality would be preserved.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Are you proposing that if a module being started (outside of tests, more production like) does not receive external database configuration it would attempt to start a docker container instance?&lt;/p&gt;

&lt;p&gt;I know this is what RAML Module Builder does with embedded PostgreSQL at the moment. Personally, I would prefer we didn&apos;t have that path at all and storage modules had to receive some form of external database configuration (which might refer to a container).  I think tools like test containers or embedded PostgreSQL should only be used for assisting with automated tests and not be involved in production code.&lt;/p&gt;</comment>
                                                            <comment id="192259" author="5f9abc1eb45b2e007453f423" created="Fri, 8 Jan 2021 15:50:32 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=63e2a2771b13d42998e4e706&quot; class=&quot;user-hover&quot; rel=&quot;63e2a2771b13d42998e4e706&quot; data-account-id=&quot;63e2a2771b13d42998e4e706&quot; accountid=&quot;63e2a2771b13d42998e4e706&quot; rel=&quot;noreferrer&quot;&gt;Marc Johnson&lt;/a&gt; - I have seen orphaned testcontainers containers left behind on the FOLIO CI build systems and have had to clean them up manually.   There could be a few reasons that might account for this: &lt;/p&gt;

&lt;p&gt;1.  The build failed before the container was cleaned up. &lt;br/&gt;
2.  Early experiments with testcontainers.  &lt;br/&gt;
3.  testcontainers artifacts require a missing, explicit cleanup.  &lt;/p&gt;

&lt;p&gt;I don&apos;t know enough yet about testcontainers to determine which of those cases are true.   If they can be cleaned up programmatically or they are cleaned up automatically after use, that would be ideal.   If not,  I can always add a post build cleanup step to the CI pipelines that cleans up container artifacts whether the build fails or succeeds.    I would just need guidance on how best to proceed.  &lt;/p&gt;</comment>
                                                            <comment id="192260" author="63e2a2771b13d42998e4e706" created="Mon, 11 Jan 2021 11:14:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I have seen orphaned testcontainers containers left behind on the FOLIO CI build systems and have had to clean them up manually.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Thanks, that is useful to know. I think we should try to identify the causes of those and figure out how to avoid / mitigate them before we roll this out all RAML Module Builder based modules.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;If they can be cleaned up programmatically or they are cleaned up automatically after use, that would be ideal. If not, I can always add a post build cleanup step to the CI pipelines that cleans up container artifacts whether the build fails or succeeds. I would just need guidance on how best to proceed.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Are you referring to cleaning up the container images or the running instances of those images?&lt;/p&gt;</comment>
                                                            <comment id="192261" author="63e2a2771b13d42998e4e706" created="Mon, 11 Jan 2021 11:49:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This is used both in test code and main code.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I think this would be a good opportunity to not have this option for the production code.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;We can keep these command line and environment options so that Windows developers can run most of the tests without the need for docker.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I agree with keeping these configuration options. As I understand it, they can refer to any instance of PostgreSQL. That would allow developers to use a hosted, local native or a docker based instance of PostgreSQL as they choose. &lt;/p&gt;

&lt;p&gt;I think that is sufficient options without retaining the use of embedded PostgreSQL, especially as one of the motivations for this change is to stop relying on a unsupported mechanism that is an impediment to FOLIO officially supporting later PostgreSQL versions.&lt;/p&gt;


</comment>
                                                            <comment id="192262" author="63e2a2771b13d42998e4e706" created="Mon, 11 Jan 2021 14:30:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cf6c546b87c300f36eb7b9a&quot; class=&quot;user-hover&quot; rel=&quot;5cf6c546b87c300f36eb7b9a&quot; data-account-id=&quot;5cf6c546b87c300f36eb7b9a&quot; accountid=&quot;5cf6c546b87c300f36eb7b9a&quot; rel=&quot;noreferrer&quot;&gt;Craig McNally&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; Is this a tooling decision?&lt;/p&gt;</comment>
                                                            <comment id="192263" author="5ee89462f7aa140abd82d11d" created="Wed, 13 Jan 2021 12:04:01 +0000"  >&lt;p&gt;John Malconian&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I have seen orphaned testcontainers containers&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;testcontainers.org should remove all containers in all cases, before reporting success or failure.&lt;br/&gt;
It also uses &lt;a href=&quot;https://github.com/testcontainers/moby-ryuk&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/testcontainers/moby-ryuk&lt;/a&gt; for cleanup.&lt;br/&gt;
However, if the java process is killed the container may remain.&lt;br/&gt;
We&apos;ve bumped Okapi to the latest testcontainers.org version 6 days ago: &lt;a href=&quot;https://github.com/folio-org/okapi/commit/0c42b51cddcef1576e7540a0b69de220cf7bd488&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/okapi/commit/0c42b51cddcef1576e7540a0b69de220cf7bd488&lt;/a&gt;&lt;br/&gt;
Have new orphaned containers been created since then?&lt;/p&gt;</comment>
                                                            <comment id="192264" author="5ee89462f7aa140abd82d11d" created="Wed, 13 Jan 2021 22:57:17 +0000"  >&lt;p&gt;On a Windows 10 Pro laptop I&apos;ve installed Docker Desktop Community 3.0.4 with default settings, one of the defaults is that &quot;Use the &lt;a href=&quot;https://docs.docker.com/docker-for-windows/wsl/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;WSL 2 based engine&lt;/a&gt;&quot; is enabled.&lt;/p&gt;

&lt;p&gt;I use maven on Windows (not in WSL 2):&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\Java\apache-maven-3.6.3
Java version: 11, vendor: Oracle Corporation, runtime: C:\Java\jdk-11
Default locale: de_DE, platform encoding: Cp1252
OS name: &lt;span class=&quot;code-quote&quot;&gt;&quot;windows 10&quot;&lt;/span&gt;, version: &lt;span class=&quot;code-quote&quot;&gt;&quot;10.0&quot;&lt;/span&gt;, arch: &lt;span class=&quot;code-quote&quot;&gt;&quot;amd64&quot;&lt;/span&gt;, family: &lt;span class=&quot;code-quote&quot;&gt;&quot;windows&quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/folio-org/okapi&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;okapi&lt;/a&gt;/okapi-core unit tests that use testcontainers properly start Docker containers and succeed:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
[INFO] Tests run: 54, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1,079.447 s - in org.folio.okapi.ModuleTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 32.834 s - in org.folio.okapi.service.impl.PostgresHandleTest
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;DockerModuleHandleTest skips one test, though:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
[WARNING] Tests run: 9, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 20.302 s - in org.folio.okapi.service.impl.DockerModuleHandleTest
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                                                            <comment id="192265" author="63e2a2771b13d42998e4e706" created="Thu, 4 Feb 2021 11:12:06 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f8314dfbdef80006f6f572d&quot; class=&quot;user-hover&quot; rel=&quot;5f8314dfbdef80006f6f572d&quot; data-account-id=&quot;5f8314dfbdef80006f6f572d&quot; accountid=&quot;5f8314dfbdef80006f6f572d&quot; rel=&quot;noreferrer&quot;&gt;Adam Dickmeiss&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Has the decision that FOLIO recommends &lt;tt&gt;testcontainers&lt;/tt&gt; for testing been made? &lt;/p&gt;

&lt;p&gt;It seems to me that it has given that both 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;OKAPI-825&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/OKAPI-825&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Switch from postgresql-embedded to testcontainers&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            OKAPI-825
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;RMB-483&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/RMB-483&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;TestContainers instead of postgresql-embedded&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            RMB-483
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 have been moved to it (or were they special cases?)&lt;/p&gt;</comment>
                                                            <comment id="192266" author="5ee89462f7aa140abd82d11d" created="Mon, 8 Feb 2021 14:06:10 +0000"  >&lt;p&gt;Each module can use for testing whatever the CI pipeline supports.&lt;br/&gt;
Okapi has switched to testcontainers.&lt;br/&gt;
RMB has switched to testcontainers.&lt;br/&gt;
RMB based modules can use the testcontainers support that RMB ships with ( &lt;a href=&quot;https://github.com/folio-org/raml-module-builder/tree/master/postgres-testing&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder/tree/master/postgres-testing&lt;/a&gt; ) or use something else. By providing the PostgresTesterContainer class in the postgres-testing sub-module RMB in some way recommends testcontainers.&lt;/p&gt;</comment>
                                                            <comment id="192267" author="557058:f8c71e3c-04a0-49c1-bae9-f8f88e253821" created="Mon, 29 Mar 2021 12:58:23 +0000"  >&lt;p&gt;This is done by 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;RMB-789&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/RMB-789&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Remove support of  EmbeddedPostgres&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            RMB-789
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and other issues&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="81300">FOLIO-2145</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81297">FOLIO-2144</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="54191">OKAPI-825</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="37501">CQLPG-100</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="57107">RMB-483</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="54341">OKAPI-971</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="79646">FOLIO-1955</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="82060">FOLIO-3118</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="55949">MODINVSTOR-369</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="75894">MODPWD-49</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57003">RMB-317</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="72350">MODCAT-194</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10007">
                    <name>Requires</name>
                                                                <inwardlinks description="is required by">
                                        <issuelink>
            <issuekey id="57351">RMB-789</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzzhhz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="994">CP: ready for planning</customfieldvalue>
    <customfieldvalue id="773">CP: Roadmap backlog</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 9 May 2019 15:15:10 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>