Ответ rakensi из Получение пути к скрипту R является самым правильным и действительно блестящим IMHO. Тем не менее, это все еще хак, включающий фиктивную функцию. Я цитирую его здесь, чтобы облегчить его поиск другими.
sourceDir & lt; - getSrcDirectory (function (dummy) {dummy})
blockquote>Это дает каталог файла, в котором размещен оператор (где определена фиктивная функция). Затем он может использоваться для установки рабочей директории и использования относительных путей, например
setwd(sourceDir) source("other.R")
, или для создания абсолютных путей
source(paste(sourceDir, "/other.R", sep=""))
Для пояснения, хотя ваш докер привязывается только к интерфейсу ipv6 («:::»), а не к ipv4 («0.0.0.0»), Docker запрещает петлевое подключение к своему docker-прокси с хоста. Я считаю, что это также не работает во всех сетевых режимах.
Если вы подключаетесь из одного контейнера в другой, используйте имя контейнера через docker-dns и частную локальную сеть. Например, если ваш контейнер MariaDB называется «maria», я считаю, что DNS докера на 127.0.0.11 предлагает поиск имени «maria» для 172. . . * Ipv4, к которому могут подключаться другие контейнеры. если в той же 172. {подсеть}. . / 16 в качестве вашего хоста MariaDB. Соединитесь с «Марией» в другом контейнере, и TCP волшебным образом попадет в нужное место.
Если вы пытаетесь подключиться с хоста докера к контейнеру, это проблема, с которой я смирился с проксированием моего маршрутизатора через шпилечный NAT к тем же портам upnp, которые я экспортировал через Внешний доступ в Synology , который кажется плохим решением, но работает сегодня.