Open hgross opened 1 month ago
I just tested this and it seems to be working fine. The only difference between what I did and what you have above is that I set the plantUML Generator URL to a real url and not localHost:8888
"plantuml.url" "https://plantuml.com/plantuml"
the localhost:8888 in the documentation is only valid if you have a PlantUML generator running locally on that port.
I have a working backend PlantUML backend running locally. All my PlantUML diagrams are fine in structurizr-lite's structurizr-ui. I am using docker compose to set up the whole thing - like this:
services:
structurizr:
image: structurizr/lite
ports:
- "8081:8080"
volumes:
- ./structurizr:/usr/local/structurizr
environment:
- STRUCTURIZR_WORKSPACE_FILENAME=${STRUCTURIZR_WORKSPACE_FILENAME:-model/workspace.dsl}
- TZ=Europe/Berlin
plantuml:
image: plantuml/plantuml-server:tomcat
ports:
- "8080:8080"
environment:
- PLANTUML_LIMIT_SIZE=24384
- JAVA_MIN_HEAP_SIZE=64M
- JAVA_MAX_HEAP_SIZE=4G
- TZ=Europe/Berlin
I am also using the docker variant to execute generate-site
:
docker run -it --rm -v ${workspaceFolder}/structurizr:/var/model ghcr.io/avisi-cloud/structurizr-site-generatr generate-site --workspace-file workspace.dsl
Does generatr require direct access to the PlantUML endpoint to work?
This would not be the case with my docker-compose setup, since the docker run
call would not have access because localhost would point somewhere else without bridging it into the docker-compose network.
The exception message has a non-exportable type
does not reveal much of the details.
yes, this seems to be more of a docker config issue.
You are on the correct line of thought to build out a new network bridge to run all these containers in, give the containers names and then in the view property you should be able to reference the PlantUML container by name instead of localhost.
Ok, I noticed that generate-site in my setup actually works fine with my PlantUML sequence diagrams, but fails (only) with state diagrams. So I can rule out problems with the setup.
It is reprodcuible with this simple plantuml state diagram:
@startuml "my-state-machine"
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string
State1 -> State2
State2 --> [*]
@enduml
Can you give this a try in your environment?
Structurizr supports to integrate with PlantUML (or other plugins like Mermaid) by defining an
image
-view (see structurizr docs).Do you have any plans to support or add an option to ignore those
image
-views? At this moment, thegenerate-site
command will fail when such a view is defined: