你好!
当 ShinyProxy 作为 docker 容器运行时,我无法编辑 navbar.html。 我尝试将编辑后的 navbar.html 放在模板/片段目录中,然后复制到 /opt/shinyproxy/templates,但是当我重新启动服务器时,更改仍然没有显示出来。
例如,我想将“退出”更改为“Sair”。
Dockerfile:
运行 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
认证:简单
管理员组:管理员
用户:
记录:
文件:
/log/shinyproxy.log
我不知道我是否做错了什么。 请问你能帮帮我吗? 谢谢你。
保罗
您应该重新创建您的图像。
顺便说一句,您不应该复制文件。 相反,您应该将该文件夹作为一个卷。 这样,更改文件后,只需要刷新浏览器即可。
@shrektan谢谢你的回复。
更改后,我使用sudo docker-compose build
重新创建了图像,但没有任何改变。 这样对吗?
关于文件夹作为一个卷,你能给我举个例子吗? 我是 ShinyProxy 的新用户,所以我有点迷茫。
谢谢你。
抱歉,我现在没有时间执行此操作,但我为您截取了一个生产设置。 应该很容易理解。
@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
运行 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
认证:简单
管理员组:管理员
用户:
记录:
文件:
/log/shinyproxy.log
2) 我仍然无法更改 navbar.html 文件。 当我放template-path: ./templates/fragments
是可能的,但是这样我更改的其他文件没有被使用(管理员、应用程序、索引、登录)。
3) 树
@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 调整工作流程.)
@shrektan 非常感谢。 它真的帮助了我。
有效。 我将碎片文件夹放在错误的位置(请参阅正确的树)。 现在所有文件都是热加载的,除了 application.yml。 谢谢你。
很高兴听到。
顺便说一句,如果您没有其他问题,关闭问题会很好。
谢谢。
谢谢你。 :)
最有用的评论
您应该重新创建您的图像。
顺便说一句,您不应该复制文件。 相反,您应该将该文件夹作为一个卷。 这样,更改文件后,只需要刷新浏览器即可。