Skip to content

Conversation

@sbryngelson
Copy link
Member

@sbryngelson sbryngelson commented Nov 15, 2025

User description

add containers to readme


PR Type

Documentation


Description

  • Add Docker container option to quick start guide

  • Include Docker command in installation methods table

  • Provide instructions for running MFC locally with Docker


Diagram Walkthrough

flowchart LR
  README["README.md"]
  TABLE["Installation Methods Table"]
  DOCKER["Docker Option Added"]
  QUICKSTART["Quick Start Section"]
  INSTRUCTIONS["Docker Run Instructions"]
  
  README --> TABLE
  README --> QUICKSTART
  TABLE --> DOCKER
  QUICKSTART --> INSTRUCTIONS
Loading

File Walkthrough

Relevant files
Documentation
README.md
Add Docker container setup documentation                                 

README.md

  • Added Docker as a quick start option in the installation methods table
    with command docker run -it --rm --entrypoint bash
    sbryngelson/mfc:latest-cpu
  • Added new section with Docker instructions for running MFC locally on
    user's machine
  • Included guidance to navigate to /opt/MFC directory inside the
    container to access MFC and examples
+7/-0     

Copilot AI review requested due to automatic review settings November 15, 2025 14:10
@qodo-merge-pro
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Possible Issue

The Docker quick-start command uses --entrypoint bash but does not mount the project or preserve work; users may expect MFC to run or examples to be available. Confirm that /opt/MFC exists in the image and consider adding a working directory (-w /opt/MFC) and example run command, or a volume mount if users need persistence.

Alternatively, run MFC directly with Docker on your local machine:
```bash
docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu

Once inside the container, navigate to /opt/MFC to access MFC and run examples.


</details>

<details><summary><a href='https://github.com/MFlowCode/MFC/pull/1049/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R63-R63'><strong>Duplication</strong></a>

Docker instructions appear both in the installation table and in the quick start section; ensure the command and tag remain consistent across both places and avoid diverging guidance by centralizing the command via a single snippet or reference.
</summary>

```markdown
| **Docker** 🐳 | `docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu` |
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc && mfc $(brew --prefix mfc)/examples/1D_sodshocktube/case.py -n 2` |

Comment on lines +144 to +148
Alternatively, run MFC directly with Docker on your local machine:
```bash
docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu
```
Once inside the container, navigate to `/opt/MFC` to access MFC and run examples.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Modify the docker run command to mount the current host directory as a volume inside the container. This will persist any generated files on the user's machine after the container exits. [general, importance: 7]

Suggested change
Alternatively, run MFC directly with Docker on your local machine:
```bash
docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu
```
Once inside the container, navigate to `/opt/MFC` to access MFC and run examples.
Alternatively, run MFC directly with Docker on your local machine. This command mounts your current directory into the container at `/work` so that any generated files are saved on your machine:
```bash
docker run -it --rm -v "$(pwd)":/work -w /work --entrypoint bash sbryngelson/mfc:latest-cpu

Once inside the container, you can copy examples from /opt/MFC/examples to your current directory (/work), run them, and the output will appear on your host machine.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds Docker container instructions to the README, providing users with an additional quick-start path alongside the existing Codespaces option.

  • Added Docker run command to the "Try MFC" quick reference table
  • Expanded "Codespaces and Containers" section with detailed Docker instructions and navigation guidance

@sbryngelson sbryngelson merged commit 7386504 into MFlowCode:master Nov 15, 2025
24 checks passed
@qodo-merge-pro
Copy link
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
Not Applicable: The PR only updates documentation (README) by adding Docker usage instructions, which does
not implement or affect runtime audit logging of critical actions.

Referred Code
| **Docker** 🐳 | `docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu` |
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc && mfc $(brew --prefix mfc)/examples/1D_sodshocktube/case.py -n 2` |
| **Local build** 💻 | `./mfc.sh build -j $(nproc) && ./mfc.sh test -j $(nproc)` |

**Welcome!**
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do). 
It uses metaprogramming and is short (20K lines) and portable.
MFC conducted the largest known CFD simulation at <a href="https://arxiv.org/abs/2505.07392" target="_blank">200 trillion grid points</a>, and 1 quadrillion degrees of freedom (as of September 2025).
MFC is a 2025 Gordon Bell Prize Finalist.

<p align="center">
<a href="https://doi.org/10.48550/arXiv.2503.07953" target="_blank">
    <img src="https://img.shields.io/badge/DOI-10.48550/arXiv.2503.07953-thistle.svg"/>
</a>
<a href="https://doi.org/10.5281/zenodo.17049757" target="_blank">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.17049757.svg"/>
</a>
<a href="https://github.com/MFlowCode/MFC/stargazers" target="_blank">
    <img src="https://img.shields.io/github/stars/MFlowCode/MFC?style=flat&color=maroon"/>
</a>



 ... (clipped 66 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status:
Documentation Change: The changes introduce only README content (Docker command and instructions) and do not add
or rename code identifiers subject to naming standards.

Referred Code
| **Docker** 🐳 | `docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu` |
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc && mfc $(brew --prefix mfc)/examples/1D_sodshocktube/case.py -n 2` |
| **Local build** 💻 | `./mfc.sh build -j $(nproc) && ./mfc.sh test -j $(nproc)` |

**Welcome!**
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do). 
It uses metaprogramming and is short (20K lines) and portable.
MFC conducted the largest known CFD simulation at <a href="https://arxiv.org/abs/2505.07392" target="_blank">200 trillion grid points</a>, and 1 quadrillion degrees of freedom (as of September 2025).
MFC is a 2025 Gordon Bell Prize Finalist.

<p align="center">
<a href="https://doi.org/10.48550/arXiv.2503.07953" target="_blank">
    <img src="https://img.shields.io/badge/DOI-10.48550/arXiv.2503.07953-thistle.svg"/>
</a>
<a href="https://doi.org/10.5281/zenodo.17049757" target="_blank">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.17049757.svg"/>
</a>
<a href="https://github.com/MFlowCode/MFC/stargazers" target="_blank">
    <img src="https://img.shields.io/github/stars/MFlowCode/MFC?style=flat&color=maroon"/>
</a>



 ... (clipped 66 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
No Runtime Code: The PR adds documentation only and does not introduce executable code paths where error
handling or edge cases would apply.

Referred Code
| **Docker** 🐳 | `docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu` |
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc && mfc $(brew --prefix mfc)/examples/1D_sodshocktube/case.py -n 2` |
| **Local build** 💻 | `./mfc.sh build -j $(nproc) && ./mfc.sh test -j $(nproc)` |

**Welcome!**
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do). 
It uses metaprogramming and is short (20K lines) and portable.
MFC conducted the largest known CFD simulation at <a href="https://arxiv.org/abs/2505.07392" target="_blank">200 trillion grid points</a>, and 1 quadrillion degrees of freedom (as of September 2025).
MFC is a 2025 Gordon Bell Prize Finalist.

<p align="center">
<a href="https://doi.org/10.48550/arXiv.2503.07953" target="_blank">
    <img src="https://img.shields.io/badge/DOI-10.48550/arXiv.2503.07953-thistle.svg"/>
</a>
<a href="https://doi.org/10.5281/zenodo.17049757" target="_blank">
    <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.17049757.svg"/>
</a>
<a href="https://github.com/MFlowCode/MFC/stargazers" target="_blank">
    <img src="https://img.shields.io/github/stars/MFlowCode/MFC?style=flat&color=maroon"/>
</a>



 ... (clipped 66 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Instruction Scope: The README adds Docker run instructions but does not change application input handling,
validation, auth, or data security mechanisms in code.

Referred Code
Alternatively, run MFC directly with Docker on your local machine:
```bash
docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu

Once inside the container, navigate to /opt/MFC to access MFC and run examples.


</details>

> Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a>
</details></td></tr>

<tr><td align="center" colspan="2">

<!-- placeholder --> <!-- /compliance --update_compliance=true -->

</td></tr></tbody></table>
<details><summary>Compliance status legend</summary>
🟢 - Fully Compliant<br>
🟡 - Partial Compliant<br>
🔴 - Not Compliant<br>
⚪ - Requires Further Human Verification<br>
🏷️ - Compliance label<br>
</details>

@sbryngelson sbryngelson deleted the readme branch November 15, 2025 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

1 participant