@Override
    public void close() {
        if (!hasContainer || !started) {
            return;
        }
        synchronized (this) {
            if (!started) {
                return;
            }
            try {
                stop();
                started = false;
            } catch (Exception e) {
                try {
                    FileSystemUtils.deleteRecursively(workingDir);
                } catch (Exception exception) {
                    e.addSuppressed(new RuntimeException(
                            "Caught an error while deleting: "
                                    + workingDir,
                            exception));
                }
                throw e;
            }
            try {
                FileSystemUtils.deleteRecursively(workingDir);
            } catch (Exception e) {
                throw new RuntimeException(
                        "Caught an error while deleting: "
                                + workingDir,
                        e);
            }
        }
    }
@param dockerCompose TODO: Use InputStream instead of File once DockerComposeContainer
                     supports
                     (https://github.com/testcontainers/testcontainers-java/issues/3431)
turms-server-test-common/src/main/java/im/turms/server/common/testing/environment/TestEnvironmentContainer.java