Shinyproxy: 当 Shinyproxy 在容器中时,我无法编辑 navbar.html 文件

创建于 2020-03-19  ·  8评论  ·  资料来源: openanalytics/shinyproxy

你好!

当 ShinyProxy 作为 docker 容器运行时,我无法编辑 navbar.html。 我尝试将编辑后的 ​​navbar.html 放在模板/片段目录中,然后复制到 /opt/shinyproxy/templates,但是当我重新启动服务器时,更改仍然没有显示出来。

例如,我想将“退出”更改为“Sair”。

image


Dockerfile:

来自openjdk:8-jre

运行 mkdir -p /opt/shinyproxy/
运行 wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar
复制 application.yml /opt/shinyproxy/application.yml
运行 mkdir 模板
复制模板/* /opt/shinyproxy/templates/
运行 mkdir 模板/片段
复制模板/片段/* /opt/shinyproxy/templates/fragments/

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]


应用程序.yml:

代理:
标题:LicitaR
登陆页面: /
模板路径:./templates
端口:8080
认证:简单
管理员组:管理员
用户:

  • 姓名:杰克
    密码:密码
    组:管理员
  • 姓名:杰夫
    密码:密码
    码头工人:
    内部网络:真
    容器网络:dnv-net
    眼镜:
  • 编号:01_你好
    显示名称:你好应用程序
    描述:演示 Shiny 应用程序基础的应用程序
    容器 cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    容器图像:openanalytics/shinyproxy-demo
    容器网络:“${proxy.docker.container-network}”
  • 编号:欧拉
    显示名称:欧拉数
    容器 cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
    容器镜像:euler-docker
    容器网络:“${proxy.docker.container-network}”

记录:
文件:
/log/shinyproxy.log


我不知道我是否做错了什么。 请问你能帮帮我吗? 谢谢你。

保罗

最有用的评论

您应该重新创建您的图像。

顺便说一句,您不应该复制文件。 相反,您应该将该文件夹作为一个卷。 这样,更改文件后,只需要刷新浏览器即可。

所有8条评论

您应该重新创建您的图像。

顺便说一句,您不应该复制文件。 相反,您应该将该文件夹作为一个卷。 这样,更改文件后,只需要刷新浏览器即可。

@shrektan谢谢你的回复。

  1. 更改后,我使用sudo docker-compose build重新创建了图像,但没有任何改变。 这样对吗?

  2. 关于文件夹作为一个卷,你能给我举个例子吗? 我是 ShinyProxy 的新用户,所以我有点迷茫。

谢谢你。

抱歉,我现在没有时间执行此操作,但我为您截取了一个生产设置。 应该很容易理解。

码头工人文件

image

Docker 编写 YAML

image

文件夹结构

image

@shrektan 非常感谢您的帮助。

1)我在 docker-compose.yml 中创建了“卷”,并按照您所说的更改了 Dockerfile。 刷新页面时使用文件(管理员、应用程序、索引、登录)(感谢您)。 但是,shinyproxy/application.yml 没有被使用,即使我输入了sudo docker-compose build并且命令sudo docker-compose up -d shinyproxy说“dnv_shinyproxy 是最新的”。 所以我在 Dockerfile 中留下了一个关于 application.yml 的 CP。 :(


码头工人-compose.yml

版本:“3.6”
服务:
闪亮代理:
图片:datanovia/shinyproxy
容器名称:dnv_shinyproxy
重启:失败
构建:./shinyproxy
网络:
- dnv-net
端口:
- 8080:8080
卷:
-“/var/run/docker.sock:/var/run/docker.sock”
- “./shinyproxy-logs/server:/log”
- “./shinyproxy-logs/container:/container-logs”
-“./shinyproxy/application.yml:/opt/shinyproxy/application.yml”
- “./shinyproxy/templates/:/opt/shinyproxy/templates”
-“./shinyproxy/templates/fragments/navbar.html:/opt/shinyproxy/templates/fragments/navbar.html”
欧拉:
图片:欧拉码头工人
容器名称:dnv_euler
构建:./shinyapps/euler-docker
网络:
- dnv-net

网络:
dnv 网:
名称:dnv-net


Dockerfile

来自openjdk:8-jre

运行 mkdir -p /opt/shinyproxy/
运行 wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar
复制 application.yml /opt/shinyproxy/application.yml

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]


应用程序.yml

代理:
标题:LicitaR
登陆页面: /
隐藏导航栏:假
模板路径:./templates/
端口:8080
认证:简单
管理员组:管理员
用户:

  • 姓名:杰克
    密码:通过
    组:管理员
  • 姓名:杰夫
    密码:通过
    码头工人:
    内部网络:真
    容器网络:dnv-net
    工作目录:/home/paulo/shinyproxy-config/
    眼镜:
  • 编号:01_你好
    显示名称:Hello Simple APP <3
    描述:应用闪亮的应用程序
    容器 cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    容器图像:openanalytics/shinyproxy-demo
    容器网络:“${proxy.docker.container-network}”
  • 编号:欧拉
    显示名称:欧拉数
    容器 cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
    容器镜像:euler-docker
    容器网络:“${proxy.docker.container-network}”

记录:
文件:
/log/shinyproxy.log


2) 我仍然无法更改 navbar.html 文件。 当我放template-path: ./templates/fragments是可能的,但是这样我更改的其他文件没有被使用(管理员、应用程序、索引、登录)。


3) 树

image

@PauloJhonny

您可以将片段放在模板中,但您需要先在index.html或某处声明它(抱歉,我不记得确切的位置)。

如果您不知道(或不太确定)您在做什么,您可能需要将fragments文件夹放在shinyproxy/下。 原因是您需要保持与 shinyproxy 相同的文件夹结构,除非您知道它是如何工作的。 您可以在此处找到 shinyproxy 的默认文件夹结构: https ://github.com/openanalytics/shinyproxy/tree/master/src/main/resources

好吧,我实际上为您构建了一个 docker-compose 示例。 请参阅https://github.com/shrektan/shinyproxy-docker-compose-example。 希望这能澄清你的困惑。

(同样,通过这种方式,这些模板 HTML 文件是热加载的。所以你不需要一次又一次地关闭和重新启动 docker 容器。只需编辑、保存和刷新浏览器。这是一个更简单的 UI 调整工作流程.)

示例截图

image

@shrektan 非常感谢。 它真的帮助了我。

有效。 我将碎片文件夹放在错误的位置(请参阅正确的树)。 现在所有文件都是热加载的,除了 application.yml。 谢谢你。

image

很高兴听到。

顺便说一句,如果您没有其他问题,关闭问题会很好。

谢谢。

谢谢你。 :)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

lucius-verus-fan picture lucius-verus-fan  ·  8评论

lucius-verus-fan picture lucius-verus-fan  ·  7评论

xtrasimplicity picture xtrasimplicity  ·  5评论

algo-se picture algo-se  ·  6评论

thomas-chauvet picture thomas-chauvet  ·  5评论