From 231f97ccad1fdc18be9468a0de12ddab4f77c5f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 3 Mar 2025 13:38:12 +0100 Subject: [PATCH] feat: add testcontainers-oss quickstart guides (#22120) - **chore: add testcontainers entry in the OSS section of Manuals** - **chore: adds quickstarts for tc-go and tc-java** ## Description This PR adds the Testcontainers OSS section in the Manuals > OSS section of the docs. It's adding the following pages: - index page with a basic description of the project, with two cards: - why use testcontainers, linking to a benefits page - quicktart, linking to a folder with two pages: Go and Java Below the cards grid, it links to the testcontainers.com/getting-started page. The benefits page includes some of the content of the above getting-started page, and the Go and Java quickstart pages are copying the quickstart pages from Go (https://golang.testcontainers.org/quickstart/) and Java (https://java.testcontainers.org/quickstart/) in its 3 flavours (junit4, junit5 and spock) ## Related issues or tickets ## Reviews - [x] Technical review - [ ] Editorial review - [x] Product review --------- Co-authored-by: aevesdocker --- _vale/config/vocabularies/Docker/accept.txt | 2 + content/manuals/_index.md | 4 ++ content/manuals/testcontainers/_index.md | 58 +++++++++++++++++++++ static/assets/icons/Testcontainers.svg | 6 +++ static/assets/icons/go.svg | 10 ++++ static/assets/icons/java.svg | 17 ++++++ 6 files changed, 97 insertions(+) create mode 100644 content/manuals/testcontainers/_index.md create mode 100644 static/assets/icons/Testcontainers.svg create mode 100644 static/assets/icons/go.svg create mode 100644 static/assets/icons/java.svg diff --git a/_vale/config/vocabularies/Docker/accept.txt b/_vale/config/vocabularies/Docker/accept.txt index 647222a976..4b328de647 100644 --- a/_vale/config/vocabularies/Docker/accept.txt +++ b/_vale/config/vocabularies/Docker/accept.txt @@ -55,6 +55,7 @@ Intune JFrog Jamf JetBrains +JUnit Kerberos Kitematic Kubeadm @@ -80,6 +81,7 @@ Paketo Postgres PowerShell Python +Ryuk S3 SQLite Slack diff --git a/content/manuals/_index.md b/content/manuals/_index.md index 7aea7a82fa..630d92371d 100644 --- a/content/manuals/_index.md +++ b/content/manuals/_index.md @@ -26,6 +26,10 @@ params: description: Define and run multi-container applications. icon: /assets/icons/Compose.svg link: /compose/ + - title: Testcontainers OSS + description: Run containers programmatically in your preferred programming language. + icon: /assets/icons/Testcontainers.svg + link: /testcontainers/ products: - title: Docker Desktop description: Your command center for container development. diff --git a/content/manuals/testcontainers/_index.md b/content/manuals/testcontainers/_index.md new file mode 100644 index 0000000000..87a39d267e --- /dev/null +++ b/content/manuals/testcontainers/_index.md @@ -0,0 +1,58 @@ +--- +title: Testcontainers OSS +description: Learn how to use Testcontainers OSS to run containers programmatically in your preferred programming language. +keywords: docker APIs, docker, testcontainers documentation, testcontainers, testcontainers oss, testcontainers oss documentation, + docker compose, docker-compose, java, golang, go +params: + sidebar: + group: Open source +intro: +- title: What is Testcontainers? + description: Learn about what Testcontainers does and its key benefits + icon: feature_search + link: https://testcontainers.com/getting-started/#what-is-testcontainers +- title: The Testcontainers workflow + description: Understand the Testcontainers workflow + icon: explore + link: https://testcontainers.com/getting-started/#testcontainers-workflow +quickstart: +- title: Testcontainers for Go + description: A Go package that makes it simple to create and clean up container-based dependencies for automated integration/smoke tests. + icon: /assets/icons/go.svg + link: https://golang.testcontainers.org/quickstart/ +- title: Testcontainers for Java + description: A Java library that supports JUnit tests, providing lightweight, throwaway instances of anything that can run in a Docker container. + icon: /assets/icons/java.svg + link: https://java.testcontainers.org/ +--- + +Testcontainers is set libraries that provides easy and lightweight APIs for bootstrapping local development and test dependencies with real services wrapped in Docker containers. +Using Testcontainers, you can write tests that depend on the same services you use in production without mocks or in-memory services. + +{{< grid items=intro >}} + +## Quickstart + +### Supported languages + +Testcontainers provide support for the most popular languages, and Docker sponsors the development of the following Testcontainers implementations: + +- [Go](https://golang.testcontainers.org/quickstart/) +- [Java](https://java.testcontainers.org/quickstart/) + +The rest are community-driven and maintained by independent contributors. + +### Prerequisites + +Testcontainers requires a Docker-API compatible container runtime. +During development, Testcontainers is actively tested against recent versions of Docker on Linux, as well as against Docker Desktop on Mac and Windows. +These Docker environments are automatically detected and used by Testcontainers without any additional configuration being necessary. + +It is possible to configure Testcontainers to work for other Docker setups, such as a remote Docker host or Docker alternatives. +However, these are not actively tested in the main development workflow, so not all Testcontainers features might be available +and additional manual configuration might be necessary. + +If you have further questions about configuration details for your setup or whether it supports running Testcontainers-based tests, + contact the Testcontainers team and other users from the Testcontainers community on [Slack](https://slack.testcontainers.org/). + + {{< grid items=quickstart >}} diff --git a/static/assets/icons/Testcontainers.svg b/static/assets/icons/Testcontainers.svg new file mode 100644 index 0000000000..5d2d59fece --- /dev/null +++ b/static/assets/icons/Testcontainers.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/static/assets/icons/go.svg b/static/assets/icons/go.svg new file mode 100644 index 0000000000..bfcca48ced --- /dev/null +++ b/static/assets/icons/go.svg @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/static/assets/icons/java.svg b/static/assets/icons/java.svg new file mode 100644 index 0000000000..590da12d96 --- /dev/null +++ b/static/assets/icons/java.svg @@ -0,0 +1,17 @@ + + + + + + + + + \ No newline at end of file