Once a public docker setup of Wikibase is using SiteLinks to connect local items with local wikipages, the updating process that feeds changes to the query service will stop working, complaining about not being able to update any item that contains site links. Example error message:
artbase-query-updater | org.wikidata.query.rdf.tool.rdf.Munger$BadSubjectException: Unrecognized subjects: [https://artbase.rhizome.org/entity/Q551, https://artbase.rhizome.org/entity/statement/Q551-FAEED5FD-26DC-4722-8C8A-5783FF55A0BD, https://artbase.rhizome.org/entity/statement/Q551-A66E3A8D-A2B1-49E4-80A0-E69590DC93B4, https://artbase.rhizome.org/entity/statement/Q551-92C4242A-16E1-4EB9-A8A7-7C766A763CF6, https://artbase.rhizome.org/entity/statement/Q551-C8CF6FB7-1DA3-4583-A01F-65EFA3E43C6C, https://artbase.rhizome.org/entity/statement/Q551-854800D6-FFB6-4A7B-BD1F-233226A1AF21, https://artbase.rhizome.org/entity/statement/Q551-48719F5B-28F4-44E6-9708-25C60F1BDBE6, https://artbase.rhizome.org/entity/statement/Q551-19EA4083-8A96-4ACA-9938-68FABF2D5741, https://artbase.rhizome.org/entity/statement/Q551-3EA1AA0C-FBC3-43DF-A574-A2F04F3D34D0]. Expected only sitelinks and subjects starting with http://wikibase.svc/wiki/Special:EntityData/ and [http://wikibase.svc/entity/]
Of course this has all kinds of side effects on the whole setup, basically the SPARQL endpoint is not reflecting the contents of the local Wikibase.
In the default docker-compose.yaml, WIKIBASE_HOST is set to wikibase.svc. AFAIK it is not documented where exactly this variable is used. Anyway, in no case wikibase.svc would be a meaningful SiteLink host, since this DNS name is only accessible from within the docker network.
Relevant excerpt from default docker-compose.yaml:
wdqs-updater: image: wikibase/wdqs:0.3.10 restart: unless-stopped command: /runUpdate.sh depends_on: - wdqs - wikibase networks: default: aliases: - wdqs-updater.svc environment: - WIKIBASE_HOST=wikibase.svc - WDQS_HOST=wdqs.svc - WDQS_PORT=9999
This appears connected to T264009, in which the main issue is the use of a URL variable for very different purposes, under the assumption that all URLs must be globally accessible.