ninjarobot/FSharp.Text.Docker
45.7
Weak · 3 October 2026
345
lines of production code
F#
primary language
2
measurements over time
What this system is
FSharp.Text.Docker is a library that provides type-safe generation of Dockerfiles using F\#. It allows developers to construct Docker specifications programmatically, supporting a comprehensive set of instructions such as FROM, RUN, COPY, and ENV, including multi-stage build capabilities. The system compiles these F\# types into valid Dockerfile strings and is designed to be compatible with both .NET and JavaScript environments via Fable.
Features
Added usage examples for FSharp.Text.Docker
The example directory now includes sample programs demonstrating how to use the FSharp.Text.Docker library. These samples show how to generate Dockerfiles for various scenarios, including a basic Debian-based setup, a specific configuration for Paket, and a simple hello-world container with exposed ports and user settings.
example · high confidence
Expanded Dockerfile instruction support and Fable compatibility
The library now supports generating Dockerfiles with a significantly broader set of instructions, including COPY (with multi-stage build support via --from), ENTRYPOINT, VOLUME, WORKDIR, ARG, ONBUILD, LABEL, EXPOSE, ENV, ADD, STOPSIGNAL, HEALTHCHECK, and SHELL. Additionally, the codebase has been updated to target .NET 5.0 and includes conditional compilation support for Fable, allowing the library to be used in JavaScript environments.
src · high confidence
Initial release of FSharp.Text.Docker with type-safe Dockerfile generation
The repository has been renamed to FSharp.Text.Docker and initialized with an initial version that provides type-safe Dockerfile construction in F\#. This release adds support for core Dockerfile instructions including FROM, RUN, and CMD, allowing users to define Docker specifications using F\# types and compile them into valid Dockerfile strings. The project includes a solution file, a Makefile for building and testing, and a global.json pinning the SDK version to 9.0.\*.
(repo-wide) · high confidence
Test coverage
Added unit tests for Dockerfile instruction generation and builder composition
Added test coverage in \tests/BuilderTests.fs\ and \tests/DockerfileTests.fs\ for the F\# Dockerfile generation library. The tests verify that the \dockerfile\ computation expression builder correctly composes multi-stage builds (including \FROM\, \RUN\, \WORKDIR\, \COPY --from\, \EXPOSE\, \ENV\, and \CMD\) and that the underlying instruction printers correctly serialize Dockerfile directives such as \FROM\, \RUN\, \CMD\, \LABEL\, \EXPOSE\, \ENV\, \ADD\, \COPY\, \ENTRYPOINT\, and \VOLUME\ into their expected string representations, including handling of exec vs. shell forms, quoted arguments, and named build stages.
tests · high confidence
Dependencies
Add Paket-based example and update project dependencies
This change introduces a new example project demonstrating how to use FSharp.Text.Docker with Paket, including the necessary dependency and lock files. It also updates the main library project to explicitly reference System.Text.Json version 6.0.10 and FSharp.Core version 5.0.0 for the netstandard2.0 target, and updates the test project to use .NET 9.0 along with xunit v3. The example project has been renamed and now references the library via a project reference instead of the FParsec package.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 49 → 46 (-3.0)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 31 → 31 (+0.0)
- Readiness 58 → 58 (+0.0)
- Security 63 → 49 (-13.3)
Resolved (2)
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
New (2)
- End-of-life runtime: .NET net9.0
- End-of-life runtime: .NET netcoreapp2.0
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ninjarobot/FSharp.Text.Docker was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 417b745d90b080ef4588b72b3dc4aa2856d57ba2 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.