private Transferable createConfigurationScript() {
        StringBuilder scriptBuilder = new StringBuilder();
        updateConfigScript(scriptBuilder, "enable");
        updateConfigScript(scriptBuilder, "configure");

        // Create VPN if not default
        if (!vpn.equals(DEFAULT_VPN)) {
            updateConfigScript(scriptBuilder, "create message-vpn " + vpn);
            updateConfigScript(scriptBuilder, "no shutdown");
            updateConfigScript(scriptBuilder, "exit");
        }

        // Configure username and password
        if (username.equals(DEFAULT_USERNAME)) {
            throw new RuntimeException("Cannot override password for default client");
        }
        updateConfigScript(scriptBuilder, "create client-username " + username + " message-vpn " + vpn);
        updateConfigScript(scriptBuilder, "password " + password);
        updateConfigScript(scriptBuilder, "no shutdown");
        updateConfigScript(scriptBuilder, "exit");

        if (withClientCert) {
            // Client certificate authority configuration
            updateConfigScript(scriptBuilder, "authentication");
            updateConfigScript(scriptBuilder, "create client-certificate-authority RootCA");
            updateConfigScript(scriptBuilder, "certificate file rootCA.crt");
            updateConfigScript(scriptBuilder, "show client-certificate-authority ca-name *");
            updateConfigScript(scriptBuilder, "end");

            // Server certificates configuration
            updateConfigScript(scriptBuilder, "configure");
            updateConfigScript(scriptBuilder, "ssl");
            updateConfigScript(scriptBuilder, "server-certificate solace.pem");
            updateConfigScript(scriptBuilder, "cipher-suite msg-backbone name AES128-SHA");
            updateConfigScript(scriptBuilder, "exit");

            updateConfigScript(scriptBuilder, "message-vpn " + vpn);
            // Enable client certificate authentication
            updateConfigScript(scriptBuilder, "authentication client-certificate");
            updateConfigScript(scriptBuilder, "allow-api-provided-username");
            updateConfigScript(scriptBuilder, "no shutdown");
            updateConfigScript(scriptBuilder, "end");
        } else {
            // Configure VPN Basic authentication
            updateConfigScript(scriptBuilder, "message-vpn " + vpn);
            updateConfigScript(scriptBuilder, "authentication basic auth-type internal");
            updateConfigScript(scriptBuilder, "no shutdown");
            updateConfigScript(scriptBuilder, "end");
        }

        if (!topicsConfiguration.isEmpty()) {
            // Enable services
            updateConfigScript(scriptBuilder, "configure");
            // Configure default ACL
            updateConfigScript(scriptBuilder, "acl-profile default message-vpn " + vpn);
            // Configure default action to disallow
            updateConfigScript(scriptBuilder, "subscribe-topic default-action disallow");
            updateConfigScript(scriptBuilder, "publish-topic default-action disallow");
            updateConfigScript(scriptBuilder, "exit");

            updateConfigScript(scriptBuilder, "message-vpn " + vpn);
            updateConfigScript(scriptBuilder, "service");
            for (Pair<String, Service> topicConfig : topicsConfiguration) {
                Service service = topicConfig.getValue();
                String topicName = topicConfig.getKey();
                updateConfigScript(scriptBuilder, service.getName());
                if (service.isSupportSSL()) {
                    if (withClientCert) {
                        updateConfigScript(scriptBuilder, "ssl");
                    } else {
                        updateConfigScript(scriptBuilder, "plain-text");
                    }
                }
                updateConfigScript(scriptBuilder, "no shutdown");
                updateConfigScript(scriptBuilder, "end");
                // Add publish/subscribe topic exceptions
                updateConfigScript(scriptBuilder, "configure");
                updateConfigScript(scriptBuilder, "acl-profile default message-vpn " + vpn);
                updateConfigScript(
                    scriptBuilder,
                    String.format("publish-topic exceptions %s list %s", service.getName(), topicName)
                );
                updateConfigScript(
                    scriptBuilder,
                    String.format("subscribe-topic exceptions %s list %s", service.getName(), topicName)
                );
                updateConfigScript(scriptBuilder, "end");
            }
        }
        return Transferable.of(scriptBuilder.toString());
    }
Create a new solace container with the specified image name.

@param dockerImageName the image name that should be used.
modules/solace/src/main/java/org/testcontainers/solace/SolaceContainer.java