You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker中部署R Shiny应用并通过localhost:3838/myapp访问

配置Shiny App在Docker子路径/myapp下运行

要让你的Shiny App通过localhost:3838/myapp访问,需要调整目录结构和Shiny Server配置,具体步骤如下:

1. 调整本地项目结构

把你的Shiny App核心文件(比如app.R、index.R等)放到本地的myapp子目录中,最终项目结构如下:

你的项目目录/
├── Dockerfile
├── Rprofile.site
└── myapp/
    └── app.R  # 你的Shiny应用文件

2. 修改Dockerfile

更新Dockerfile内容,调整文件复制路径,并添加自定义Shiny Server配置:

FROM rocker/shiny
# 安装系统依赖(保留原内容)
RUN apt-get update && apt-get install -y \
    --no-install-recommends \
    git-core \
    libssl-dev \
    libcurl4-gnutls-dev \
    curl \
    libsodium-dev \
    libxml2-dev \
    libicu-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
ENV _R_SHLIB_STRIP_=true
COPY Rprofile.site /etc/R
RUN R -e "install.packages('shiny', repos='http://cran.rstudio.com/')"
RUN R -e "install.packages('remotes', repos='http://cran.rstudio.com/')"

# 复制应用到子路径目录
COPY ./myapp /srv/shiny-server/myapp
# 复制自定义Shiny Server配置
COPY shiny-server.conf /etc/shiny-server/shiny-server.conf

USER shiny
EXPOSE 3838
CMD ["/usr/bin/shiny-server"]

3. 创建自定义Shiny Server配置文件

在项目根目录创建shiny-server.conf文件,内容如下:

run_as shiny;
server {
  listen 3838;
  
  # 配置/myapp路径对应的应用目录
  location /myapp {
    site_dir /srv/shiny-server/myapp;
    log_dir /var/log/shiny-server;
    directory_index on;
  }
}

4. 重新构建并运行容器

执行以下命令重新构建镜像并启动容器:

docker build -t myapp .
docker run --rm -p 3838:3838 myapp

完成后,你就可以通过localhost:3838/myapp访问你的Shiny应用了。

内容的提问来源于stack exchange,提问作者hlinnnnnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:55:22