## Description
Migrate the first two Testcontainers getting-started guides from
[testcontainers.com/guides](https://testcontainers.com/guides/) into the
Docker docs site:
- **Getting started with Testcontainers for Go** — multi-page guide with
4 chapters (create project, write tests, test suites, run tests). Code
updated to testcontainers-go v0.41.0 API (`postgres.Run()`,
`CleanupContainer`, `BasicWaitStrategies()`).
- **Getting started with Testcontainers for Python** — multi-page guide
with 3 chapters (create project, write tests, run tests). Code updated
to testcontainers-python 4.14.2 (fixed `get_exposed_port()` returning
`int`).
Each guide appears as its own entry in the `/guides/` listing with
proper language and tag filters (`testing-with-docker`). Chapters render
with stepper navigation in the sidebar.
Also adds:
- A `testing-with-docker` tag to `data/tags.yaml`
- A Claude skill
(`.claude/skills/testcontainers-guides-migrator/SKILL.md`) that
documents the repeatable migration process for the remaining 19 guides
- Links from `content/manuals/testcontainers.md` to the new guides
- Vale vocabulary entries for `pgx`, `Micronaut`, `psycopg`, `pytest`
All guide code was compiled and tests verified passing in containers
with Docker socket mounted.
## Related issues or tickets
No related issues found.
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
<!--Delete sections as needed -->
## Description
This PR adds a guide that shows how to secure a Backstage developer
portal container using Docker Hardened Images, covering native module
compilation, multi-stage builds, Socket Firewall protection, and
distroless runtime images
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
<!--Delete sections as needed -->
## Description
The DHI static image has no adduser package, plus it already runs as a
nonroot user. Removed that section from the Dockerfile.
## Related issues or tickets
Closes#24362
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Editorial review
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
<!--Delete sections as needed -->
## Description
This guide explains how to deploy Docker Hardened Images in OpenShift
environments. It covers Security Context Constraints (SCCs), arbitrary
user ID assignment, file permission requirements, and best practices for
both runtime and development image variants.
<!-- Tell us what you did and why -->
Added new guide: content/guides/dhi-openshift.md
## Related issues or tickets
Supersedes #24293 (closed due to fork deletion)
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
Previously reviewed and approved by @dvdksn in #24293
@craig-osterhout was requested for review before the PR was closed
No content changes from the previously approved version
<!-- List applicable reviews (optionally @tag reviewers) -->
## Description
In order to better attribute upgrade sources, we are adding two params -
`ref` and `refAction` to the existing pricing url.
The `ref` will be "Docs" and the `refAction` will be the particular docs
page from where the pricing url click is originated.
## Related issues or tickets
https://docker.atlassian.net/browse/GRO-282
## Reviews
@akristen You should see the new url params when hovering over or
clicking any of the updated pricing urls
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---------
Co-authored-by: Alexa Kristensen <81787716+akristen@users.noreply.github.com>
Add AI overview landing page with decision table and relationship overview.
Reframe Gordon as "AI-powered assistant" instead of "AI agent" to avoid
confusion with Docker Agent. Rename sandbox agent page from cagent.md to
docker-agent.md. Add cross-references where products overlap. Fix doubled
"Docker Docker Agent" in agentic AI guide.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [x] Editorial review
- [ ] Product review
---------
Signed-off-by: MohammadHasan Akbari <jarqvi.jarqvi@gmail.com>
<!--Delete sections as needed -->
## Description
Errr... I updated the .NET guide to 10. 😆
## Related issues or tickets
The sample .NET repo has a PR as well -
https://github.com/docker/docker-dotnet-sample/pull/9
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
<!--Delete sections as needed -->
## Description
Updated the Rust language guide to include Docker Hardened Images (DHI).
Changes include:
- Added DHI as an option with tab-based layout (Official image /
Hardened image)
- Added a DHI-based Dockerfile example
- Updated build instructions to match docker init behavior
- Added DHI quickstart link in "Related information"
This follows the same structure used in the
[Bun](https://github.com/docker/docs/pull/23565) and
[Ruby](https://github.com/docker/docs/pull/23691) DHI updates.
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [x] Editorial review
- [ ] Product review
---------
Co-authored-by: Craig Osterhout <craig.osterhout@docker.com>
This PR adds minor adjustments to sign up procedures in prerequisite
sections.
* Adding one word `verified` to instances of `Docker account` in
prerequisite sections is a subtle, unobtrusive change that returning,
verified users can gloss over, while still prompting new users to verify
their email if they haven't yet.
* Changes stick to specific instances in `## Prerequisite` sections and
does not add `verified` to every instance (which would be obtrusive).
* Edits to Create Account doc to remove redundant callouts, consolidate
steps for shorter procedures, and add context about verification.
* If an instance of `Docker account` links to /create-account and not
the sign up page, I did not add `verification`.
* **Note**: we may want to consider a direct link to a sign up page
rather than linking them to a create account page. This can be a
separate PR, however.
## Description
This PR adds a DHI-based Dockerfile example demonstrating how to build
an React.js application using the dhi-node image and serve it through
the dhi-nginx image.
## Reviews
- [x] Technical review
## Description
This PR adds a DHI-based Dockerfile example demonstrating how to build
an Vue.js application using the dhi-node image and serve it through the
dhi-nginx image.
## Reviews
- [x] Technical review
## Description
This PR adds a DHI-based Dockerfile example demonstrating how to build
an Angular application using the dhi-node image and serve it through the
dhi-nginx image.
## Reviews
- [x] Technical review
<!--Delete sections as needed -->
* Updated Ruby containerization guide to use dhi.io for hardened images.
* Used abbreviations for hardened images (DHI) and official images (DOI)
to align with official manuals
(https://docs.docker.com/dhi/migration/examples/go/). Optional and can
be changed to a better wording.
* Bumped Ruby version to 3.4.8.
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [x] Editorial review
- [ ] Product review
## Description
In your Angular + Nginx Docker example you are running a non-root user,
but by default Nginx will try to write to directories like
`/var/cache/nginx/`. Which will cause errors like:
```
mkdir() "/var/cache/nginx/client_temp" failed (13: Permission denied)
```
This PR fixes that, and simply changing the default temp path
directories (like you did for the pid file as well) to the `/tmp`
directory. Which will work when using the `nginx` user in Docker. Mainly
`client_body_temp_path` change was needed here, but I would set more
just to be sure.
## Reviews
- [x] Technical review
- [x] Editorial review
- [ ] Product review
<!--Delete sections as needed -->
## Description
<!-- Tell us what you did and why -->
## Related issues or tickets
<!-- Related issues, pull requests, or Jira tickets -->
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
<!--Delete sections as needed -->
## Description
Update the Bun containerization Bun to reflect the new DHI access method
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [x] Editorial review
- [ ] Product review
## Description
Fixed a minor typo in the documentation/source file. No functional or
behavioral changes; this is purely a text correction to improve clarity.
## Related issues or tickets
N/A. Just fixed a single typo
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
This PR introduces a comprehensive, language-specific guide for
containerizing Node.js applications using Docker, aimed at helping
developers streamline development, testing, and deployment workflows. It
includes hands-on steps and real-world examples to configure CI/CD
pipelines using GitHub Actions, following modern DevOps best practices.
**What’s Included**
- Step-by-step instructions to containerize Node.js applications using
Docker.
- Configuration for a local development environment inside containers
with automatic reloads.
- Guidance on running unit and integration tests within Docker
containers.
- Full CI/CD pipeline setup using GitHub Actions for automated builds,
tests, and deployments.
- Deployment instructions for a local Kubernetes cluster to validate
production readiness.
**Credits**
[Kristiyan Velkov](https://www.linkedin.com/in/kristiyanvelkov/), Docker
Captain.
## Reviews
<!-- Notes for reviewers here -->
<!-- List applicable reviews (optionally @tag reviewers) -->
- [x] Technical review
- [x] Editorial review
- [ ] Product review