Skip to content

Conversation

@rm3l
Copy link
Member

@rm3l rm3l commented Jan 16, 2026

Description

Users may prefer either Podman or Docker as their container runtime.
This change ensures all documentation consistently shows commands for both options, making it easier for users to follow along regardless of their choice.

Which issue(s) does this PR fix or relate to

Follow-up to #147 (comment)

PR acceptance criteria

  • Tests updated and passing
  • Documentation updated
  • Built-in TechDocs updated if needed. Note that TechDocs changes may need to be reviewed by a Product Manager and/or Architect to ensure content accuracy, clarity, and alignment with user needs.

How to test changes / Special notes to the reviewer

Given the popularity of Docker, users may prefer either
Podman or Docker as their container runtime.
This change ensures all documentation consistently shows commands for
both options, making it easier for users to follow along regardless
of their choice.

Co-authored-by: Ben Wilcock <benwilcock@gmail.com>
Assisted-by: Cursor
@rm3l
Copy link
Member Author

rm3l commented Jan 16, 2026

/cc @benwilcock

@rhdh-qodo-merge
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🔒 No security concerns identified
⚡ Recommended focus areas for review

Consistency

The document states the instructions apply to both Podman and Docker and suggests replacing commands, but the actual examples remain Podman-only. Consider either adding Docker variants (for the key commands) or converting the note into explicit tabs/sections to avoid users missing required substitutions.

> **Note:** All instructions in this guide apply to both Podman and Docker.
> Replace `podman compose` with `docker compose` if you are using Docker.

Before you begin, ensure to add the `orchestrator/configs/dynamic-plugins/dynamic-plugins.yaml` file to the
list of `includes` in your `configs/dynamic-plugins/dynamic-plugins.override.yaml` to enable orchestrator plugins within RHDH.
Example:

```yaml

includes:
  - dynamic-plugins.default.yaml
  - orchestrator/configs/dynamic-plugins/dynamic-plugins.yaml # <-- to add to enable the Orchestrator plugins

# Below you can add your own custom dynamic plugins, including local ones.
plugins: []

To set up the infrastructure for developing workflow with Orchestrator, you must merge and run these two compose files:
compose.yaml and orchestrator/compose.yaml configs.

To get started, run the command below or override the RHDH_ORCHESTRATOR_WORKFLOWS variable in your .env file to
point to your local workflow development directory before running the command.

podman compose -f compose.yaml -f orchestrator/compose.yaml up -d

To make custom changes/configuration to the compose configuration, it is recommended to use a compose-orchestrator.local.yaml by merging the default compose.yaml and orchestrator/compose.yaml to prevent conflicts with version-controlled files.

Run this command to merge compose files:

# NOTE: this will overwrite your existing compose-orchestrator.local.yaml file, if any
podman compose -f compose.yaml -f orchestrator/compose.yaml config > compose-orchestrator.local.yaml

And this command to spin up the containers:

podman compose -f compose-orchestrator.local.yaml up -d

There are three workflow examples to get you started on testing Orchestrator workflow with RHDH Local.

  1. The orchestrator/workflow-examples folder contains example workflows and by default, it is already mounted to /home/kogito/serverless-workflow-project/src/main/resources for SonataFlow configuration in the orchestrator/compose.yaml. The directory contains three workflows: greeting, slack and github. For more information about the workflow and setup, refer to this README.

  2. A suite of workflows exists in this backstage-orchestrator-workflows. Feel free to clone the repository to your local and override the mount directory RHDH_ORCHESTRATOR_WORKFLOWS in your .env file to point to your local backstage-orchestrator-workflows directory.
    Note: While developing workflows and after making changes to your resources, the pages might error out. Reloading the
    page (a couple of times) may fix it. Otherwise, you may have to restart the sonataflow pod by running the command below. This is a known issue.

       podman compose -f compose.yaml -f orchestrator/compose.yaml restart sonataflow

</details>

<details><summary><a href='https://github.com/redhat-developer/rhdh-local/pull/153/files#diff-15ff791a0aee188446a310b8568f103bade5bccdb4bb3a38dcf24d5ff1875b3cR147-R178'><strong>Command accuracy</strong></a>

Some operational guidance was simplified from a “stop/run installer/start” sequence to a plain “restart”. Validate that a simple restart is sufficient in each context (especially where dynamic plugins may require rerunning the installer), so users don’t end up with stale plugins after following the docs.
</summary>

```markdown

**For app-config changes** (`configs/app-config/app-config.local.yaml`):

=== "Podman"
    ```bash
    podman compose restart rhdh
    ```

=== "Docker"
    ```bash
    docker compose restart rhdh
    ```

**For plugin changes** (`configs/dynamic-plugins/dynamic-plugins.override.yaml`):

=== "Podman"
    ```bash
    # Reinstall plugins with new configuration
    podman compose run install-dynamic-plugins

    # Restart RHDH service
    podman compose restart rhdh
    ```

=== "Docker"
    ```bash
    # Reinstall plugins with new configuration
    docker compose run install-dynamic-plugins

    # Restart RHDH service
    docker compose restart rhdh
    ```
📄 References
  1. redhat-developer/rhdh-operator/docs/developer.md [130-146]
  2. redhat-developer/rhdh-operator/docs/developer.md [32-55]
  3. redhat-developer/rhdh-operator/docs/developer.md [165-179]
  4. redhat-developer/rhdh-operator/tests/e2e/README.md [67-74]
  5. redhat-developer/rhdh-operator/tests/e2e/README.md [84-92]
  6. redhat-developer/rhdh-operator/integration_tests/README.md [1-46]
  7. redhat-developer/rhdh-operator/docs/orchestrator-cicd.md [103-123]
  8. redhat-developer/rhdh-operator/tests/e2e/README.md [61-66]

@rhdh-qodo-merge rhdh-qodo-merge bot added Review effort 2/5 documentation Improvements or additions to documentation labels Jan 16, 2026
@rhdh-qodo-merge
Copy link
Contributor

PR Type

Documentation


Description

  • Remove "(Recommended)" label from Podman tabs across all documentation

  • Add Docker command alternatives alongside Podman in tabbed code blocks

  • Update 11 documentation files to consistently show both container runtime options

  • Simplify orchestrator README with clearer instructions and formatting improvements


File Walkthrough

Relevant files
Documentation
10 files
configuration.md
Remove Podman recommendation label from tab                           
+1/-1     
corporate-proxy-setup-sim.md
Add Docker tab alongside Podman for proxy setup                   
+10/-4   
dynamic-plugins-management.md
Add Docker alternatives to plugin management commands       
+24/-12 
getting-started.md
Add Docker option and update container logs reference       
+2/-2     
github-auth.md
Add Docker tab for authentication verification steps         
+12/-5   
help-and-contrib.md
Update logs reference to mention both runtimes                     
+1/-1     
loading-content.md
Remove Podman recommendation label from tab                           
+1/-1     
operating-rhdh-local.md
Add Docker tabs to all operational commands and troubleshooting
+258/-102
plugins-guide.md
Add Docker alternatives to plugin debugging and development steps
+51/-19 
README.md
Add runtime agnostic note and improve formatting clarity 
+14/-26 

@rhdh-qodo-merge
Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Add missing Docker command example

Add a docker compose example for restarting the sonataflow service using a
tabbed format to match the podman compose example.

orchestrator/README.md [53-55]

-```shell
-   podman compose -f compose.yaml -f orchestrator/compose.yaml restart sonataflow
-```
+=== "Podman"
+    ```shell
+    podman compose -f compose.yaml -f orchestrator/compose.yaml restart sonataflow
+    ```
 
+=== "Docker"
+    ```shell
+    docker compose -f compose.yaml -f orchestrator/compose.yaml restart sonataflow
+    ```
+
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly points out a missing docker compose example, which improves consistency with the rest of the documentation and the note added in this PR.

Low
Include Docker restart example

Add a Docker tab with the docker compose restart rhdh command to provide an
equivalent example to the existing Podman one for applying configuration
changes.

docs/rhdh-local-guide/configuration.md [65-69]

 === "Podman"
     ```bash
     # For app-config changes
     podman compose restart rhdh
     ```
+=== "Docker"
+    ```bash
+    # For app-config changes
+    docker compose restart rhdh
+    ```

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a missing docker compose example and proposes adding it, which aligns with the PR's goal of improving documentation consistency for both container engines.

Low
Add Docker log example

Add a Docker tab with the docker compose logs -f rhdh command to provide an
equivalent example to the existing Podman one for monitoring logs.

docs/rhdh-local-guide/dynamic-plugins-management.md [40-43]

 === "Podman"
     ```bash
     podman compose logs -f rhdh
     ```
+=== "Docker"
+    ```bash
+    docker compose logs -f rhdh
+    ```
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a missing docker compose example and proposes adding it, which aligns with the PR's goal of improving documentation consistency for both container engines.

Low
Add Docker startup example

Add a docker compose example for the orchestrator startup command using a tabbed
format to match the podman compose example.

orchestrator/README.md [41-43]

-```shell
-podman compose -f compose-orchestrator.local.yaml up -d
-```
+=== "Podman"
+    ```shell
+    podman compose -f compose-orchestrator.local.yaml up -d
+    ```
+=== "Docker"
+    ```shell
+    docker compose -f compose-orchestrator.local.yaml up -d
+    ```

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 6

__

Why: The suggestion correctly points out a missing docker compose example, which improves consistency with the rest of the documentation and the note added in this PR.

Low
  • More

@benwilcock
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm label Jan 16, 2026
@rm3l rm3l merged commit c0da39c into redhat-developer:main Jan 16, 2026
25 checks passed
@rm3l rm3l deleted the docs/mention_both_podman_and_docker_across_all_docs branch January 16, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation lgtm Review effort 2/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants