At first, thanks for developing on the C4model and its graphical visualization layer. I like the kind of abstractions and try to introduce them into our team.
Therefore, I want to use the structurizr CLI in a docker image for local development and within-CI processing.
My plan was to export the JSON/DSL file in the CI pipeline to always have the most up to date graphs from the source.
While this works quite good when developing a documentation locally, the Github CI container has no internet access and throws an HttpHostConnectException.
org.apache.hc.client5.http.HttpHostConnectException: Connect to [https://static.structurizr.com:443](https://static.structurizr.com/) [static.structurizr.com/172.67.223.154, static.structurizr.com/104.21.54.48] failed: Operation timed out
at java.base/sun.nio.ch.Net.pollConnect(Native Method)
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672)
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:554)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)
at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.lambda$connectSocket$0(SSLConnectionSocketFactory.java:232)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:231)
at org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:181)
at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:447)
at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:162)
at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:172)
at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:142)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:192)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:[11](https://github1.vg.vector.int/pnd/autosar-dsl/actions/runs/962121/job/3108345#step:4:12)5)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170)
at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:[12](https://github1.vg.vector.int/pnd/autosar-dsl/actions/runs/962121/job/3108345#step:4:13)3)
at com.structurizr.view.ThemeUtils.loadThemes(ThemeUtils.java:74)
at com.structurizr.cli.export.ExportCommand.run(ExportCommand.java:[14](https://github1.vg.vector.int/pnd/autosar-dsl/actions/runs/962121/job/3108345#step:4:15)1)
at com.structurizr.cli.StructurizrCliApplication.run(StructurizrCliApplication.java:77)
at com.structurizr.cli.StructurizrCliApplication.main(StructurizrCliApplication.java:112)
Is there a way to run structurizr export from a DSL or a JSON file without having internet access? Do I need to setup further services within the image to do that? E.g., a structurizr server?
Question
Hey,
At first, thanks for developing on the C4model and its graphical visualization layer. I like the kind of abstractions and try to introduce them into our team.
Therefore, I want to use the structurizr CLI in a docker image for local development and within-CI processing. My plan was to export the JSON/DSL file in the CI pipeline to always have the most up to date graphs from the source. While this works quite good when developing a documentation locally, the Github CI container has no internet access and throws an
HttpHostConnectException
.Is there a way to run
structurizr export
from a DSL or a JSON file without having internet access? Do I need to setup further services within the image to do that? E.g., a structurizr server?