[
https://issues.apache.org/jira/browse/JENA-909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16995914#comment-16995914
]
Martynas Jusevičius edited comment on JENA-909 at 12/13/19 9:11 PM:
--------------------------------------------------------------------
What do you mean with "container namespace"? The container filesystem?
This is currently my setup (of one of the services) in {{docker-compose.yml}}:
{{fuseki-admin:}}
{{ image: atomgraph/fuseki}}
{{ ports:}}
{{ - 3030:3030}}
{{ environment:}}
{{ - BASE_URI=[https://localhost:4443/admin/]}}
{{ volumes:}}
{{ -
./config/fuseki/admin.ttl:/mnt/apache-fuseki/configuration/admin.ttl:ro}}
{{ - ./datasets/admin.trig:/mnt/apache-fuseki/admin.trig:ro}}
{{ entrypoint: [ sh, -c, "\{ echo \"@base <$${BASE_URI}> .\"; cat
/mnt/apache-fuseki/admin.trig; } > /mnt/apache-fuseki/based.admin.trig &&
/usr/bin/java -jar fuseki-server.jar --config
/mnt/apache-fuseki/configuration/admin.ttl" ]}}
And this the {{admin.ttl}} config:
{{PREFIX : <#>}}
{{PREFIX fuseki: <[http://jena.apache.org/fuseki#]>}}
{{PREFIX rdf: <[http://www.w3.org/1999/02/22-rdf-syntax-ns#]>}}
{{PREFIX ja: <[http://jena.hpl.hp.com/2005/11/Assembler#]>}}
{{PREFIX tdb2: <[http://jena.apache.org/2016/tdb#]>}}
{{[] a fuseki:Server .}}
{{<#service> a fuseki:Service ;}}
{{ fuseki:name "ds" ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:query; ] ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:update;] ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:gsp-rw; ] ;}}
{{ fuseki:dataset <#dataset> .}}
{{<#dataset> a ja:MemoryDataset;}}
{{ ja:data "/mnt/apache-fuseki/based.admin.trig" .}}
It works fine with the in-memory dataset. But for real use I need persistence
and thus a {{tdb2:DatasetTDB2}}.
The part that looks wobbly to me is that there is no guarantee {{VOLUME $DATA}}
will match {{-loc}}. Why not pass {{-loc $DATA}} to the entrypoint by default?
That still leaves the problem with {{tdb2:location}} in the RDF config, which
if mounted could be anything. Unless the entrypoint substitutes {{tdb2:location
"$DATA"}} or something like that?
I also haven't figured out yet how to import a {{DatasetTDB2}} into it before
the service starts - or before it becomes available externally. That is why I
was looking at the init scripts in the {{mysql}} image (as I wrote above).
was (Author: graphity):
What do you mean with "container namespace"? The container filesystem?
This is currently my setup (of one of the services) in {{docker-compose.yml}}:
{{ fuseki-admin:}}
{{ image: atomgraph/fuseki}}
{{ ports:}}
{{ - 3030:3030}}
{{ environment:}}
{{ - BASE_URI=https://localhost:4443/admin/}}
{{ volumes:}}
{{ -
./config/fuseki/admin.ttl:/mnt/apache-fuseki/configuration/admin.ttl:ro}}
{{ - ./datasets/admin.trig:/mnt/apache-fuseki/admin.trig:ro}}
{{ entrypoint: [ sh, -c, "\{ echo \"@base <$${BASE_URI}> .\"; cat
/mnt/apache-fuseki/admin.trig; } > /mnt/apache-fuseki/based.admin.trig &&
/usr/bin/java -jar fuseki-server.jar --config
/mnt/apache-fuseki/configuration/admin.ttl" ]}}
And this the {{admin.ttl}} config:
{{PREFIX : <#>}}
{{PREFIX fuseki: <[http://jena.apache.org/fuseki#]>}}
{{PREFIX rdf: <[http://www.w3.org/1999/02/22-rdf-syntax-ns#]>}}
{{PREFIX ja: <[http://jena.hpl.hp.com/2005/11/Assembler#]>}}
{{PREFIX tdb2: <[http://jena.apache.org/2016/tdb#]>}}
{{[] a fuseki:Server .}}
{{<#service> a fuseki:Service ;}}
{{ fuseki:name "ds" ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:query; ] ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:update;] ;}}
{{ fuseki:endpoint [ fuseki:operation fuseki:gsp-rw; ] ;}}
{{ fuseki:dataset <#dataset> .}}
{{<#dataset> a ja:MemoryDataset;}}
{{ ja:data "/mnt/apache-fuseki/based.admin.trig" .}}
It works fine with the in-memory dataset. But for real use I need persistence
and thus a {{tdb2:DatasetTDB2}}.
The part that looks wobbly to me is that there is no guarantee {{VOLUME $DATA}}
will match {{-loc}}. Why not pass {{-loc $DATA}} to the entrypoint by default?
That still leaves the problem with {{tdb2:location}} in the RDF config, which
if mounted could be anything. Unless the entrypoint substitutes {{tdb2:location
"$DATA"}} or something like that?
I also haven't figured out yet how to import a {{DatasetTDB2}} into it before
the service starts - or before it becomes available externally. That is why I
was looking at the init scripts in the {{mysql}} image (as I wrote above).
> Create Docker launcher for Fuseki
> ---------------------------------
>
> Key: JENA-909
> URL: https://issues.apache.org/jira/browse/JENA-909
> Project: Apache Jena
> Issue Type: Improvement
> Components: Fuseki
> Reporter: Andy Seaborne
> Priority: Major
> Attachments: Dockerfile.0, image-2019-10-02-22-24-12-723.png,
> log4j.properties
>
>
> Provide a Docker launcher and setup documentation for Fuseki2.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)