diff --git a/hw-polysemy.cabal b/hw-polysemy.cabal
--- a/hw-polysemy.cabal
+++ b/hw-polysemy.cabal
@@ -1,6 +1,6 @@
 cabal-version:          3.4
 name:                   hw-polysemy
-version:                0.2.14.2
+version:                0.2.14.3
 synopsis:               Opinionated polysemy library
 description:            Opinionated polysemy library.
 license:                Apache-2.0
diff --git a/testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs b/testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs
--- a/testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs
+++ b/testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs
@@ -1,13 +1,13 @@
 {-# LANGUAGE GADTs             #-}
 {-# LANGUAGE OverloadedStrings #-}
 
-
 {- HLINT ignore "Use camelCase" -}
 
 module HaskellWorks.TestContainers.LocalStack
   ( LocalStackEndpoint(..)
   , TC.Container
   , setupContainers
+  , setupContainers'
   , waitForLocalStack
   ) where
 
@@ -15,12 +15,12 @@
 
 import           Control.Concurrent                           (threadDelay)
 import           Control.Exception                            (try)
-import           Control.Monad                                (when)
 import           Control.Monad.IO.Class
 import qualified Data.ByteString.Lazy                         as LBS
 import           Data.Function
 import qualified Data.Text                                    as T
 import           Data.Time.Clock.POSIX                        (getPOSIXTime)
+import           HaskellWorks.Prelude
 import           HaskellWorks.TestContainers.LocalStack.Types (LocalStackEndpoint (LocalStackEndpoint))
 import           Network.HTTP.Conduit                         (HttpException,
                                                                simpleHttp)
@@ -29,11 +29,20 @@
 import qualified TestContainers.Tasty                         as TC
 
 -- | Sets up and runs the containers required for this test suite.
-setupContainers :: TC.MonadDocker m => m TC.Container
-setupContainers = do
+setupContainers :: ()
+  => TC.MonadDocker m
+  => m TC.Container
+setupContainers = setupContainers' "localstack/localstack-pro:latest"
+
+-- | Sets up and runs the containers required for this test suite.
+setupContainers' :: ()
+  => TC.MonadDocker m
+  => Text
+  -> m TC.Container
+setupContainers' dockerTag = do
   authToken <- liftIO $ IO.lookupEnv "LOCALSTACK_AUTH_TOKEN"
   -- Launch the container based on the postgres image.
-  localstackContainer <- TC.run $ TC.containerRequest (TC.fromTag "localstack/localstack-pro:3.1.0")
+  localstackContainer <- TC.run $ TC.containerRequest (TC.fromTag dockerTag)
     & TC.setEnv [("LOCALSTACK_AUTH_TOKEN", maybe "" T.pack authToken)]
     -- Expose the port 4566 from within the container. The respective port
     -- on the host machine can be looked up using `containerPort` (see below).
