大家好!
有人对 Digitalocean 应用程序平台有任何建议/提示吗? (https://www.digitalocean.com/products/app-platform/)。
据我了解,这是在后台使用 Kubernetes 运行的。 因此,我想知道是否可以在那里使用shinyproxy
,如果可以,什么是最合适的配置。
提前致谢!
费利佩
你好
我认为我们对这个平台没有任何经验。 但是,我认为如果 Kubernetes API 可用于运行它的应用程序,则应该可以在其上使用 ShinyProxy。
你能同时尝试一下吗? 当然,我们很好奇您在这个平台上使用 ShinyProxy 是否成功。
我最终将所有内容都转移到了 AWS - 但我还有另一个测试项目要尝试一下。 我会在这里发布更新。 感谢您的答复!
@fmmattioni你可以使用你的 Dockerfile 并遵循这个模板: https :
嗨@fmmattioni
如果可能,我总是建议使用我们的官方 Docker 镜像。 此映像具有一些安全增强功能(即在非 root 用户下运行 ShinyProxy)。
嗯,好主意! 我不知道! 感谢您的抬头!
只是一个问题:我一直在使用旧版本的 Shinyproxy,因为最新版本不适用于 AWS Cognito 身份验证。 我也可以通过那里的标签简单地获取这个旧版本 - 还是这些安全增强仅存在于最新版本中?
嗨@fmmattioni
安全增强功能包含在任何版本中。
您提到最新版本的 ShinyProxy 不适用于 AWS Cognito。 我们不知道 OIDC 在最新版本 (2.4.3) 中有任何问题。 你能打开一个新问题,提供更多细节吗? (例如,您遇到什么行为,记录的任何错误等)。 我们真的希望 ShinyProxy 能够与任何 Auth 提供者无缝协作,因此如果出现错误,我们真的很想解决它。
只是为了确保我得到它,这就是我的 Dockerfile 中应该包含的内容,对吗?
FROM openanalytics/shinyproxy:latest
COPY application.yml /opt/shinyproxy/application.yml
WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
至于 AWS Cognito 的问题,我记得上次我设置它时,日志提到server.useForwardHeaders
选项在最新版本中仍然不起作用。 不过,我不记得这是否是2.4.3 。 让我做一个快速测试,我会告诉你的。
感谢您的回复!
是的,这是一个适合与 ShinyProxy 一起使用的 Docker 文件,尽管您甚至可以缩短它:
FROM openanalytics/shinyproxy:latest
COPY application.yml /etc/shinyproxy/application.yml
如果您没有指定WORKDIR
或CMD
指令,Docker 将从基础镜像中获取它们。 我们的基本映像指定/etc/shinyproxy
作为工作目录,因此您可以将配置文件放在那里。
关于server.useForwardHeaders
属性。 您可能收到以下警告消息:
WARNING: Using server.use-forward-headers will not work in this ShinyProxy release. See https://shinyproxy.io/documentation/security/#https-ssl--tls on how to change your configuration.
所以从 2.4.0 开始,配置转发头的属性发生了变化,但转发头仍然有效。 您只需要使用以下配置:
server:
forward-headers-strategy: native
而不是旧财产。
我注意到警告消息实际上应该指向https://shinyproxy.io/documentation/security/#forward -headers 。 我会在下一个版本中更改它。
这正是我收到的警告!
对不起,我什至懒得更仔细地阅读页面......我将再次测试它 - 如果我有任何问题,我会告诉你们!
谢谢!
快速更新: server.forward-headers-strategy
属性确实与 AWS Cognito 一起正常工作! 非常感谢您为我指明了正确的方向!
嘿@LEDfan ,在按照openanalytics/shinyproxy
docker 映像的建议设置我的新配置时,我注意到我总是收到以下错误:
这是我的 Dockerfile:
FROM openanalytics/shinyproxy:latest
COPY application.yml /etc/shinyproxy/application.yml
但是,当我将 Dockerfile 更改为:
FROM openjdk:8-jre
RUN mkdir -p /opt/shinyproxy/
RUN wget https://www.shinyproxy.io/downloads/shinyproxy-2.4.3.jar -O /opt/shinyproxy/shinyproxy.jar
COPY application.yml /opt/shinyproxy/application.yml
WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]
一切都按预期工作。
使用第一个 Dockerfile 时,我应该在application.yml
更改任何内容或修改nginx
的特定设置吗?
如果我应该打开一个新问题或提供更多细节,请告诉我。
嗨@fmmattioni
我忘了说,因为我们的镜像使用的是非 root 用户,所以默认情况下它无权访问 docker 套接字。
您必须使用以下命令运行 ShinyProxy docker 映像:
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add $(getent group docker | cut -d: -f3) -p 8080:8080 openanalytics/shinyproxy
$(getent group docker | cut -d: -f3)
部分决定了 docker 的 group-id。 --group-add
参数确保在 ShinyProxy docker 容器内运行的用户是该组(即 docker 组)的一部分,因此 ShinyProxy docker 容器可以访问 docker 套接字。
另外请确保您没有设置proxy.docker.url
属性。 只有当你不提供它时,ShinyProxy 才会访问 docker 套接字而不是一些 docker HTTP 端口。
祝你好运!
甜的! 非常感谢您提供的详细信息! 我可以确认这现在正在起作用。
谢谢!