Shinyproxy: Déploiement de la plateforme d'application Digitalocean

Créé le 15 janv. 2021  ·  15Commentaires  ·  Source: openanalytics/shinyproxy

Salut tout le monde!

Quelqu'un a-t-il des suggestions/conseils sur la plateforme d'applications Digitalocean ? (https://www.digitalocean.com/products/app-platform/).

Pour autant que je sache, cela est exécuté avec Kubernetes en arrière-plan. Par conséquent, je me demandais si je pouvais utiliser shinyproxy là-bas, et si oui, quelle serait la configuration la plus adéquate.

Merci d'avance!
Felipe

question

Tous les 15 commentaires

salut

Je ne pense pas que nous ayons d'expérience avec cette plate-forme. Mais, je pense que si l'API Kubernetes est disponible pour les applications qui l'exécutent, il devrait être possible d'utiliser ShinyProxy dessus.

Avez-vous pu tester cela entre-temps ? Bien sûr, nous sommes très curieux de savoir si vous avez réussi à utiliser ShinyProxy sur cette plate-forme.

J'ai fini par tout déplacer vers AWS - mais j'ai un autre projet de test que je vais essayer. Je posterai les mises à jour ici. Merci pour la réponse!

@fmmattioni vous pouvez utiliser votre Dockerfile et suivre ce modèle : https://github.com/digitalocean/sample-dockerfile c'est assez simple.

Salut @fmmattioni

Si possible, je conseillerais toujours d'utiliser notre image Docker officielle . Cette image a quelques améliorations de sécurité (c'est-à-dire exécuter ShinyProxy sous un utilisateur non root).

Hum, bonne remarque ! je ne le savais pas ! Merci pour l'information!

Juste une question : j'utilise une ancienne version de shinyproxy, car la dernière version ne fonctionne pas avec l'authentification AWS Cognito. Puis-je simplement récupérer cette ancienne version via la balise qui s'y trouve également - ou ces améliorations de sécurité n'existent-elles que dans la dernière version ?

Salut @fmmattioni

Les améliorations de sécurité sont incluses dans toutes les versions.

Vous avez mentionné que la dernière version de ShinyProxy ne fonctionne pas avec AWS Cognito. Nous ne sommes au courant d'aucun problème avec OIDC dans la dernière version (2.4.3). Pourriez-vous ouvrir un nouveau numéro avec plus de détails à ce sujet ? (par exemple, quel comportement vous rencontrez, toutes les erreurs enregistrées, etc.). Nous voulons vraiment que ShinyProxy fonctionne de manière transparente avec n'importe quel fournisseur Auth, donc s'il y a un bogue, nous voulons vraiment le résoudre.

Juste pour être sûr de l'avoir, c'est ce que je devrais avoir dans mon Dockerfile, n'est-ce pas ?

FROM openanalytics/shinyproxy:latest

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

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

En ce qui concerne le problème avec AWS Cognito, je me souviens que la dernière fois que je l'ai configuré, les journaux mentionnaient que l'option server.useForwardHeaders ne fonctionnait toujours pas dans la dernière version. Je ne me souviens pas si c'était 2.4.3 , cependant. Laissez-moi faire un test rapide, et je vous le ferai savoir.

Merci pour les réponses!

Oui, c'est un bon fichier Docker à utiliser avec ShinyProxy, bien que vous puissiez même le raccourcir :

FROM openanalytics/shinyproxy:latest

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

Si vous ne spécifiez pas les directives WORKDIR ou CMD , Docker les prendra à partir de l'image de base. Notre image de base spécifie /etc/shinyproxy comme répertoire de travail, vous pouvez donc y placer le fichier de configuration.

Concernant la propriété server.useForwardHeaders . Vous avez probablement le message d'avertissement suivant :

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.

Ainsi, à partir de la version 2.4.0, la propriété qui configure les en-têtes de transfert a changé, mais les en-têtes de transfert fonctionnent toujours. Il vous suffit d'utiliser la configuration suivante :

server:
  forward-headers-strategy: native

au lieu de l'ancienne propriété.
J'ai remarqué que le message d'avertissement devrait en fait pointer vers https://shinyproxy.io/documentation/security/#forward -headers . Je vais changer ça pour la prochaine version.

C'est exactement l'avertissement que je recevais !

Je suis désolé, je n'ai même pas pris la peine de lire la page plus attentivement... Je vais la tester à nouveau - si j'ai des problèmes, je vous le ferai savoir !

Merci!

Mise à jour rapide : la propriété server.forward-headers-strategy fonctionne bien avec AWS Cognito ! Merci beaucoup de m'avoir orienté dans la bonne direction !

@LEDfan , lors de la configuration de ma nouvelle configuration comme suggéré avec l'image docker openanalytics/shinyproxy , j'ai remarqué que j'obtiens toujours l'erreur suivante :

image

Voici mon Dockerfile :

FROM openanalytics/shinyproxy:latest

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

Cependant, lorsque je modifie mon Dockerfile en :

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

tout fonctionne comme prévu.

Y a-t-il quelque chose que je devrais changer dans le application.yml ou modifier un paramètre spécifique dans nginx lors de l'utilisation du premier Dockerfile ?

Faites-moi savoir si je dois ouvrir un nouveau numéro ou fournir plus de détails.

Salut @fmmattioni

J'ai oublié de mentionner que, puisque notre image utilise un utilisateur non root, elle n'a pas accès au socket docker par défaut.
Vous devrez exécuter l'image du docker ShinyProxy à l'aide de la commande suivante :

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 partie $(getent group docker | cut -d: -f3) détermine l'identifiant de groupe de docker. Le paramètre --group-add garantit que l'utilisateur qui s'exécute dans le conteneur docker ShinyProxy fait partie de ce groupe (c'est-à-dire le groupe docker) et, par conséquent, que le conteneur docker ShinyProxy a accès au socket docker.

Assurez-vous également que vous n'avez pas défini l'attribut proxy.docker.url . Seulement si vous ne le fournissez pas, ShinyProxy accédera au socket docker et non à un port HTTP docker.

Bonne chance!

Doux! Merci beaucoup pour les infos détaillées ! Je peux confirmer que cela fonctionne maintenant.

Merci!

Cette page vous a été utile?
0 / 5 - 0 notes