Shinyproxy: Implantação da plataforma de aplicativos Digitalocean

Criado em 15 jan. 2021  ·  15Comentários  ·  Fonte: openanalytics/shinyproxy

Olá a todos!

Alguém tem sugestões / dicas sobre a plataforma de aplicativos Digitalocean? (https://www.digitalocean.com/products/app-platform/).

Pelo que entendi, isso é executado com o Kubernetes em segundo plano. Portanto, gostaria de saber se posso usar shinyproxy ali, e se sim, qual seria a configuração mais adequada.

Desde já, obrigado!
Felipe

question

Todos 15 comentários

Oi

Não creio que tenhamos experiência com esta plataforma. Mas, acho que se a API Kubernetes estiver disponível para os aplicativos que a executam, deve ser possível usar ShinyProxy nela.

Você conseguiu fazer isso nesse meio tempo? Claro, estamos muito curiosos para saber se você teve sucesso ao usar o ShinyProxy nesta plataforma.

Acabei movendo tudo para a AWS - mas tenho outro projeto de teste que vou experimentar. Vou postar as atualizações aqui. Obrigado pela resposta!

@fmmattioni você pode usar seu Dockerfile e seguir este modelo: https://github.com/digitalocean/sample-dockerfile é bastante simples.

Olá @fmmattioni

Se possível, sempre aconselho usar nossa imagem oficial do Docker . Esta imagem tem alguns aprimoramentos de segurança (ou seja, executando ShinyProxy com um usuário não root).

Hmm, bom ponto! Eu não sabia disso! Obrigado pelo aviso!

Só uma pergunta: tenho usado uma versão mais antiga do Glossproxy, porque a versão mais recente não funciona com a autenticação AWS Cognito. Posso simplesmente pegar essa versão mais antiga por meio da tag lá também - ou esses aprimoramentos de segurança existem apenas na versão mais recente?

Olá @fmmattioni

Os aprimoramentos de segurança estão incluídos em qualquer versão.

Você mencionou que a versão mais recente do ShinyProxy não funciona com o AWS Cognito. Não temos conhecimento de nenhum problema com o OIDC na versão mais recente (2.4.3). Você poderia abrir uma nova edição com mais detalhes sobre isso? (por exemplo, qual comportamento você experimenta, quaisquer erros registrados, etc.). Queremos que o ShinyProxy funcione perfeitamente com qualquer provedor de Auth, portanto, se houver um bug, realmente queremos resolvê-lo.

Só para ter certeza de que entendi, é isso que devo ter em meu Dockerfile, correto?

FROM openanalytics/shinyproxy:latest

COPY application.yml /opt/shinyproxy/application.yml

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

Quanto ao problema com o AWS Cognito, lembro que da última vez que o estava configurando, os logs mencionavam que a opção server.useForwardHeaders ainda não estava funcionando na versão mais recente. Não me lembro se era 2.4.3 , no entanto. Deixe-me fazer um teste rápido e eu o informarei.

Obrigado pelas respostas!

Sim, é um arquivo Docker adequado para usar com ShinyProxy, embora você possa até mesmo torná-lo mais curto:

FROM openanalytics/shinyproxy:latest

COPY application.yml /etc/shinyproxy/application.yml

Se você não especificar as diretivas WORKDIR ou CMD , o Docker as obterá da imagem base. Nossa imagem base especifica /etc/shinyproxy como diretório de trabalho, então você pode colocar o arquivo de configuração lá.

Com relação à propriedade server.useForwardHeaders . Você provavelmente recebeu a seguinte mensagem de aviso:

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.

Portanto, a partir do 2.4.0, a propriedade que configura os cabeçalhos de encaminhamento mudou, mas os cabeçalhos de encaminhamento ainda funcionam. Você só precisa usar a seguinte configuração:

server:
  forward-headers-strategy: native

em vez da antiga propriedade.
Percebi que a mensagem de aviso deveria apontar para https://shinyproxy.io/documentation/security/#forward -headers. Vou mudar isso para o próximo lançamento.

Esse é exatamente o aviso que eu estava recebendo!

Lamento, nem me preocupei em ler a página com mais atenção ... Vou testá-la novamente - se eu tiver algum problema, avisarei a vocês!

Obrigado!

Atualização rápida: a propriedade server.forward-headers-strategy está realmente funcionando corretamente com o AWS Cognito! Muito obrigado por me apontar na direção certa!

Ei @LEDfan , ao definir minha nova configuração conforme sugerido com a imagem do docker openanalytics/shinyproxy , percebi que sempre recebo o seguinte erro:

image

Este é meu Dockerfile:

FROM openanalytics/shinyproxy:latest

COPY application.yml /etc/shinyproxy/application.yml

No entanto, quando eu mudo meu Dockerfile para:

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"]

tudo funciona conforme o esperado.

Há algo que devo alterar em application.yml ou modificar uma configuração específica em nginx ao usar o primeiro Dockerfile?

Informe se devo abrir um novo problema ou fornecer mais detalhes.

Olá @fmmattioni

Esqueci de mencionar que, como nossa imagem está usando um usuário não root, ela não tem acesso ao soquete docker por padrão.
Você terá que executar a imagem docker ShinyProxy usando o seguinte comando:

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

A parte $(getent group docker | cut -d: -f3) determina o id de grupo do docker. O parâmetro --group-add garante que o usuário em execução no contêiner do docker ShinyProxy faça parte desse grupo (ou seja, o grupo do docker) e, como resultado, o contêiner do docker ShinyProxy tenha acesso ao soquete do docker.

Além disso, certifique-se de não ter definido o atributo proxy.docker.url . Somente se você não fornecê-lo, o ShinyProxy acessará o soquete do docker e não alguma porta HTTP do docker.

Boa sorte!

Doce! Muito obrigado pelas informações detalhadas! Posso confirmar que isso está funcionando agora.

Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações