r - 端口转发的 Docker 和 Plumber 问题
问题描述
我试图通过 Docker 公开我的管道工服务器。我从 RStudio 中的管道工那里得到一个日志,它正在监听我想要的端口。并且 swagger 启动并运行良好(通过 swagger 在我的浏览器中连接到 8787 的 Rstudio 的暴露端口,API 工作正常)。
我正在运行这个命令:
docker run -e PASSWORD=rstudio --rm -it -p 8787:8787 -p 3038:3038 -v "/Users/my_name/Google Drive/r_files":"/home/rstudio/r-docker-tutorial" 摇杆/诗
如果我做:
我收到“来自服务器的空回复”
同样,如果我尝试在 Postman 中达到我的端点,我会得到“无法得到任何响应”
因此,看来该端口没有被 Docker 成功代理,但我有点卡住了,因为这没有多大意义!
有没有人有任何想法?
谢谢
担
解决方案
这是我们用来公开管道工 API 的模板 Dockerfile:
Dockerfile
FROM rocker/r-ver:4.0.0
WORKDIR /src
RUN apt-get update && apt-get install -y --no-install-recommends \
git-core \
libssl-dev \
libz-dev \
libcurl4-gnutls-dev \
libsodium-dev
RUN install2.r --error plumber \
data.table \
xgboost
COPY ./startup.R /var
COPY ./plumber.R /var
EXPOSE 8004
ENTRYPOINT ["R", "-f", "/var/startup.R", "--slave"]
启动.R
library(plumber)
pr <- plumb("plumber.R")
pr$run(host = "0.0.0.0", port = 8004)
水管工
#* Health check
#* @get /
#* @serializer unboxedJSON
function() {
list(status = "OK")
}
推荐阅读
- apache-spark - Spark集群模式下的UnknownHostException
- python - 我们可以在列表推导中使用嵌套 for 循环的内在原因是什么
- javascript - 当我想创建我的反应应用程序时出现 npm 错误
- javascript - 按解决/执行时间的顺序解决承诺?
- sql - 在一列中选择 In 和 Out
- python - 基于标点符号的文本分割,尤其是在从句级别
- ubuntu - ssh 和 scp 命令的区别
- python - Python,比较数字
- windows - Windows 任务计划程序 - 非重复仅在时间窗口内运行
- javascript - 通过索引号调用字符串中的特定单词?