mirror of
https://github.com/docker/docs.git
synced 2026-03-28 23:08:49 +07:00
## Description Migrate 17 Testcontainers guides from testcontainers.com into the Docker docs site, covering Java (14 guides), .NET (2 guides), and Node.js (1 guide). This follows up on PR #24450 which added the initial Go and Python guides. Each guide is converted from AsciiDoc to Hugo Markdown, split into multi-chapter stepper navigation, updated to the latest Testcontainers API, and verified with passing tests running in containers. Java guides use testcontainers-java 2.0.4 with the new 2.x Maven coordinates and package names (e.g., `testcontainers-postgresql`, `org.testcontainers.postgresql.PostgreSQLContainer`). The Quarkus guide uses Quarkus 3.22.3 with TC 1.x managed by the Quarkus BOM, since no released Quarkus version ships TC 2.x yet. ## How to test All code snippets have been verified by running each guide's source repository tests inside Docker containers with the Docker socket mounted. To re-run the verification, use the `/testcontainers-guides-migrator` skill included in this PR (`.claude/skills/testcontainers-guides-migrator/SKILL.md`). The skill's Step 6 documents the exact container commands and macOS Docker Desktop workarounds (host override, docker-java API version, etc.) needed to run each language's tests: ``` /testcontainers-guides-migrator I want you to verify all the guides in this branch. Do a full review, verifying that all code snippets compile, the code is executable, and ALL the tests pass. Run them as docker containers, never locally. ``` ## Related issues or tickets Supersedes #24450 (expanded from 2 guides to all 19) ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
---
|
|
title: Replace H2 with a real database for testing
|
|
linkTitle: Replace H2 database
|
|
description: Learn how to replace an H2 in-memory database with a real PostgreSQL database for testing using Testcontainers.
|
|
keywords: testcontainers, java, testing, h2, postgresql, spring boot, spring data jpa, jdbc
|
|
summary: |
|
|
Replace your H2 in-memory test database with a real PostgreSQL instance
|
|
using the Testcontainers special JDBC URL — a one-line change.
|
|
toc_min: 1
|
|
toc_max: 2
|
|
tags: [testing-with-docker]
|
|
languages: [java]
|
|
params:
|
|
time: 15 minutes
|
|
---
|
|
|
|
<!-- Source: https://github.com/testcontainers/tc-guide-replace-h2-with-real-database-for-testing -->
|
|
|
|
In this guide, you will learn how to:
|
|
|
|
- Understand the drawbacks of using H2 in-memory databases for testing
|
|
- Replace H2 with a real PostgreSQL database using the Testcontainers special JDBC URL
|
|
- Use the Testcontainers JUnit 5 extension for more control over the container
|
|
- Test both Spring Data JPA and JdbcTemplate-based repositories
|
|
|
|
## Prerequisites
|
|
|
|
- Java 17+
|
|
- Maven or Gradle
|
|
- A Docker environment supported by Testcontainers
|
|
|
|
> [!NOTE]
|
|
> If you're new to Testcontainers, visit the
|
|
> [Testcontainers overview](https://testcontainers.com/getting-started/) to learn more about
|
|
> Testcontainers and the benefits of using it.
|