Closed sebastienfi closed 6 months ago
Thanks for the kind words! Adding PlantUML to the Docker image defined in this repo will likely result in future issues being opened along the lines of, "we don't use PlantUML, can you add Mermaid support too?" ... and I'd rather avoid that.
So, from my perspective, my preference is to keep the CLI Docker image as simple as possible (I will modify theENTRYPOINT
though), and allow people to build their own Docker images if needed ... that's the beauty of open source after all. I've added a link to your repo in the docs though ... thank you! 👍
Description
Hi @simonbrowndotje!
First off, I have to say – I'm genuinely impressed by your work! The C4 Architecture Model, the DSL, Structurizr... you've created some amazing tools that have been incredibly beneficial in my professional environment. I just wanted to start by saying a huge thanks for your commitment to developing solutions that truly makes life easier for us humans.
I've been actively promoting the use of the C4 model and Structurizr within my company. I've encouraged our engineering team to embrace the C4 model for documenting our software, coupled with the documentation-as-code approach (v2.0). While implementing Structurizr, however, I noticed a disconnect in integration that was causing some friction in our developer experience (DX). So, I dedicated the last day to bridging this gap, and I'm excited to share my insights with you and introduce a toolkit I developed to smooth out this process.
Observation
Our team has been using Structurizr, but we've run into a snag. Both our Product Managers and Engineers have found the diagrams visualisations challenging to generate, leading to documentation that quickly becomes outdated. This issue has led the team to seek workarounds, including reverting to static diagram tools, straying away from the documentation-as-code principle.
Solution
To tackle this issue head-on, I created a series of Github Actions. These actions automatically generate rendered images and attach them as comments in pull requests. The images get committed to the repository, allowing any accompanying documentation to reference these files easily. Developers can also manually compare diagrams, and I'm planning to enhance these actions to offer 'before/after' comparisons.
I did encounter some challenges with the
structurizr/cli
Docker image you provide. The Dockerfile's configuration seemed incompatible with Github Actions and lacked some tools needed for exporting images with PlantUML. Specifically, I noticed:WORKDIR
setting gets overridden during the Github setup, rendering the CLI unusable in Github Actions.ENTRYPOINT
setting, as a relative reference, also conflicts with Github Actions' restrictions.To turn these issues into a solution, I've published a new Docker image with the necessary adjustments. This image functions just like yours but includes PlantUML, is compatible with Github Actions, and is smaller in size. Could you take a look at the changes I've made and let me know if they align with your vision? Your input could help us collaborate to refine your existing Dockerfile, making these improvements available to a wider audience. Integrating these changes could render my Docker image unnecessary and bring enhanced resilience to everyone needing this integration (at the moment, I manually update the image when you publish a new release for the CLI). What are your thoughts on this?
The approach would be:
Resources:
Looking forward to your thoughts!
Steps to reproduce
structurirz/cli:latest
, followed by a bash script to execute the export command. ->structurizr.sh not found
Screenshot
No response
Code sample
No response
Configuration
No response
Severity
Major
Priority
I'm willing to fix this myself and raise a PR (please confirm approach first)
More information
❤️