When the container service launches any container, it populates three environment variables which can be used to connect back to XNAT's REST API from inside the container:
- XNAT_HOST: The URL of your XNAT
- XNAT_USER: A temporary token which can be used as a username
- XNAT_PASS: A temporary token which can be used as a password
The token is generated anew for each container. The value of XNAT_HOST is usually pulled from XNAT's Site URL property in the Admin settings.
However, sometimes you want or need a different URL to be used for processing (including pipelines and containers). Maybe your external Site URL is slower and more locked down, but you have a faster connection on a different URL that can be used on the internal network where processing runs. Or maybe you’re using the xnat-docker-compose project. In this case, your XNAT is accessible on your host machine at
localhost, but that same address inside a container just loops back to itself and doesn't connect out to the host.
In these cases, you may want to set an alternate URL as the Processing URL. This is located at Administer > Site Administration > Pipeline Settings > Processing URL. If you set anything here, it will be used to set the XNAT_HOST instead of the Site URL.
In the case of xnat-docker-compose, you can use the IP address of your host machine as the processing URL. Or, if you are using docker for mac or windows, you can use the special "fake" URL http://host.docker.internal. Docker uses that URL to route from a container back to its host machine. As of writing, this URL does not work on docker for linux; see https://github.com/docker/for-linux/issues/264.