Я пытаюсь создать демо, основанное на 2 контейнерах докера.Каждый контейнер запускает R-Studio (рокер / стих).
Один контейнер публикует API, а другой контейнер читает результат, используя GET (внутри ShinyApp).Когда я тестирую API в Swagger, сгенерированном сантехником, он работает, однако, когда я тестирую Запрос с использованием Postman, я получаю страницу входа в R-Studio
, я также могу создать сеть, и оба контейнера могут обмениваться данными.То, что я могу прочитать из другого контейнера, - это та же страница входа в R-Studio
установить сеть
docker network create -d bridge my-net
API публикации среды
docker run -d --rm --network=my-net --net-alias=Prod -p 8797:8787 --name Prod rocker/verse
library(plumber)
#* Provide correct configuration automatically
#* @param part_num Part Location in the Group
#* @param grp_num Group Number
#* @get /config
function(part_num, grp_num) {
# read the specification
df1 <- read_csv("/home/myself/r-studio/verify-parts/master_spec.csv")
# extract the needed element
part_num <- as.numeric(part_num)
grp_num <- as.numeric(grp_num)
df1[[part_num]][[grp_num]]
}
plumb(file='api/plumber.R')$run()
Среда, выполняющая запросы GET от Shiny App
docker run -d --rm --network=my-net --net-alias=Dev -p 8787:8787 --name Dev rocker/verse
library(httr)
url <- "172.19.0.2:8787/p/1c2808f8/config?grp_num=a&part_num=b"`
res <- GET(url)
# interpret the results
element <- rawToChar(res$content)
> output is html page with R studio
Я ожидаю, что на выходе будет символ, как это было проверено в Swagger,но почему фактическим выводом является html веб-объект.
Возможно, есть более простой способ проверить такую настройку, спасибо за помощь, спасибо!