Shinyproxy: Implementación de la plataforma de la aplicación Digitalocean

Creado en 15 ene. 2021  ·  15Comentarios  ·  Fuente: openanalytics/shinyproxy

¡Hola a todos!

¿Alguien tiene sugerencias / consejos sobre la plataforma de la aplicación Digitalocean? (https://www.digitalocean.com/products/app-platform/).

Por lo que tengo entendido, esto se ejecuta con Kubernetes en segundo plano. Por lo tanto, me preguntaba si puedo usar shinyproxy allí y, de ser así, cuál sería la configuración más adecuada.

¡Gracias por adelantado!
Felipe

question

Todos 15 comentarios

Hola

No creo que tengamos ninguna experiencia con esta plataforma. Pero, creo que si la API de Kubernetes está disponible para las aplicaciones que la ejecutan, debería ser posible usar ShinyProxy en ella.

¿Pudiste probar esto mientras tanto? Por supuesto, tenemos mucha curiosidad por saber si tuvo éxito con el uso de ShinyProxy en esta plataforma.

Terminé moviendo todo a AWS, pero tengo otro proyecto de prueba que voy a probar. Publicaré las actualizaciones aquí. ¡Gracias por la respuesta!

@fmmattioni puede usar su Dockerfile y seguir esta plantilla: https://github.com/digitalocean/sample-dockerfile es bastante sencillo.

Hola @fmmattioni

Si es posible, siempre recomendaría utilizar nuestra imagen oficial de Docker . Esta imagen tiene algunas mejoras de seguridad (es decir, ejecutar ShinyProxy con un usuario que no es root).

¡Hmm, buen punto! ¡Yo no lo sabía! ¡Gracias por el aviso!

Solo una pregunta: he estado usando una versión anterior de shinyproxy, porque la última versión no funciona con la autenticación de AWS Cognito. ¿Puedo simplemente tomar esta versión anterior a través de la etiqueta allí también, o estas mejoras de seguridad solo existen en la última versión?

Hola @fmmattioni

Las mejoras de seguridad se incluyen en cualquier versión.

Mencionó que la última versión de ShinyProxy no funciona con AWS Cognito. No tenemos conocimiento de ningún problema con OIDC en la última versión (2.4.3). ¿Podrías abrir una nueva edición con más detalles sobre esto? (por ejemplo, qué comportamiento experimenta, errores registrados, etc.). Realmente queremos que ShinyProxy funcione sin problemas con cualquier proveedor de autenticación, por lo que si hay un error, realmente queremos resolverlo.

Solo para asegurarme de obtenerlo, esto es lo que debería tener en mi Dockerfile, ¿correcto?

FROM openanalytics/shinyproxy:latest

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

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

En cuanto al problema con AWS Cognito, recuerdo que la última vez que lo configuré, los registros mencionaron que la opción server.useForwardHeaders todavía no funcionaba en la última versión. Sin embargo, no recuerdo si esto fue 2.4.3 . Déjame hacer una prueba rápida y te lo haré saber.

¡Gracias por las respuestas!

Sí, ese es un archivo Docker adecuado para usar con ShinyProxy, aunque incluso puede acortarlo:

FROM openanalytics/shinyproxy:latest

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

Si no especifica las directivas WORKDIR o CMD , Docker las tomará de la imagen base. Nuestra imagen base especifica /etc/shinyproxy como directorio de trabajo, por lo que puede colocar el archivo de configuración allí.

Respecto a la propiedad server.useForwardHeaders . Probablemente recibió el siguiente mensaje de advertencia:

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.

Entonces, a partir de 2.4.0, la propiedad que configura los encabezados de reenvío ha cambiado, pero los encabezados de reenvío aún funcionan. Solo necesita usar la siguiente configuración:

server:
  forward-headers-strategy: native

en lugar de la antigua propiedad.
Noté que el mensaje de advertencia debería apuntar a https://shinyproxy.io/documentation/security/#forward -headers. Cambiaré eso para el próximo lanzamiento.

¡Esa es exactamente la advertencia que estaba recibiendo!

Lo siento, ni siquiera me molesté en leer la página con más atención ... Voy a probarla de nuevo, si tengo algún problema, ¡se lo haré saber!

¡Gracias!

Actualización rápida: la propiedad server.forward-headers-strategy funciona correctamente con AWS Cognito. ¡Muchas gracias por señalarme en la dirección correcta!

Hola @LEDfan , mientras configuraba mi nueva configuración como se sugiere con la imagen de la ventana acoplable openanalytics/shinyproxy , noté que siempre obtengo el siguiente error:

image

Este es mi Dockerfile:

FROM openanalytics/shinyproxy:latest

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

Sin embargo, cuando cambio mi Dockerfile a:

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

todo funciona como se esperaba.

¿Hay algo que deba cambiar en application.yml o modificar una configuración específica en nginx al usar el primer Dockerfile?

Avíseme si debo abrir una nueva edición o proporcionar más detalles.

Hola @fmmattioni

Olvidé mencionar que, dado que nuestra imagen utiliza un usuario que no es root, no tiene acceso al socket de la ventana acoplable de forma predeterminada.
Deberá ejecutar la imagen de la ventana acoplable ShinyProxy con el siguiente 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

La parte $(getent group docker | cut -d: -f3) determina el ID de grupo de la ventana acoplable. El parámetro --group-add garantiza que el usuario que se ejecuta dentro del contenedor de la ventana acoplable ShinyProxy sea parte de ese grupo (es decir, el grupo de la ventana acoplable) y, como resultado, el contenedor de la ventana acoplable ShinyProxy tiene acceso al socket de la ventana acoplable.

Además, asegúrese de no haber configurado el atributo proxy.docker.url . Solo si no lo proporciona, ShinyProxy accederá al socket de la ventana acoplable y no a algún puerto HTTP de la ventana acoplable.

¡Buena suerte!

¡Dulce! ¡Muchas gracias por la información detallada! Puedo confirmar que esto está funcionando ahora.

¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones