Shinyproxy: No puedo editar el archivo navbar.html cuando shinyproxy está en el contenedor

Creado en 19 mar. 2020  ·  8Comentarios  ·  Fuente: openanalytics/shinyproxy

¡Hola!

No puedo editar navbar.html cuando ShinyProxy se ejecuta como contenedor acoplable. Traté de colocar el navbar.html editado en el directorio templates/fragments y luego copiarlo en /opt/shinyproxy/templates, pero aún así los cambios no aparecen cuando reinicio el servidor.

Por ejemplo, me gustaría cambiar "Cerrar sesión" por "Salir".

image


archivo acoplable:

DESDE openjdk:8-jre

EJECUTAR mkdir -p /opt/shinyproxy/
EJECUTAR wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar
COPIAR aplicación.yml /opt/shinyproxy/aplicación.yml
EJECUTAR plantillas mkdir
COPIAR plantillas/* /opt/shinyproxy/templates/
EJECUTAR mkdir plantillas/fragmentos
COPIAR templates/fragments/* /opt/shinyproxy/templates/fragments/

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


aplicación.yml:

apoderado:
título: LicitaR
página de destino: /
plantilla-ruta: ./templates
puerto: 8080
autenticación: sencilla
grupos de administración: administradores
usuarios:

  • nombre: jack
    contraseña: contraseña
    grupos: administradores
  • nombre: jeff
    contraseña: contraseña
    estibador:
    red interna: verdadero
    red-contenedor: dnv-net
    especificaciones:
  • id: 01_hola
    nombre para mostrar: Hola aplicación
    descripción: Aplicación que demuestra los conceptos básicos de una aplicación Shiny
    contenedor-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    imagen-contenedor: openanalytics/shinyproxy-demo
    red-contenedor: "${proxy.docker.container-network}"
  • identificación: euler
    nombre para mostrar: número de Euler
    contenedor-cmd: ["R", "-e", "brillante::runApp('/root/euler')"]
    imagen-contenedor: euler-docker
    red-contenedor: "${proxy.docker.container-network}"

Inicio sesión:
expediente:
/log/shinyproxy.log


No se si estoy haciendo algo mal. ¿Usted me podría ayudar por favor? Gracias.

Pablo

Comentario más útil

Deberías recrear tu imagen.

Por cierto, no debe copiar los archivos. En su lugar, debe crear la carpeta como un volumen. De esta manera, después de cambiar el archivo, solo necesita actualizar el navegador.

Todos 8 comentarios

Deberías recrear tu imagen.

Por cierto, no debe copiar los archivos. En su lugar, debe crear la carpeta como un volumen. De esta manera, después de cambiar el archivo, solo necesita actualizar el navegador.

@shrektan gracias por tu respuesta.

  1. Después de los cambios, recreé la imagen usando sudo docker-compose build , pero nada cambió. ¿Es correcto?

  2. Sobre la carpeta como volumen, ¿podría mostrarme un ejemplo? Soy nuevo usuario de ShinyProxy, así que estoy un poco perdido.

Gracias.

Lo siento, no tengo tiempo para hacer esto ahora, pero te hago una captura de pantalla de una configuración de producción. Debe ser fácil de entender.

El archivo docker

image

Docker componer YAML

image

Estructura de carpetas

image

@shrektan Muchas gracias por su ayuda.

1) Creé los 'volúmenes' en docker-compose.yml y cambié el Dockerfile como dijiste. Los archivos (administrador, aplicación, índice, inicio de sesión) se utilizan cuando se actualiza la página (gracias a usted). Pero, shinyproxy/application.yml no se usan, aunque puse sudo docker-compose build y el comando sudo docker-compose up -d shinyproxy dice "dnv_shinyproxy está actualizado". Así que dejé un CP en Dockerfile con respecto a application.yml. :(


docker-compose.yml

versión: "3.6"
servicios:
proxy brillante:
imagen: datanovia/shinyproxy
nombre_contenedor: dnv_shinyproxy
reiniciar: en caso de falla
construir: ./proxy brillante
redes:
- red dnv
puertos:
- 8080:8080
volúmenes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./shinyproxy-logs/servidor:/registro"
- "./shinyproxy-logs/container:/container-logs"
- "./shinyproxy/aplicación.yml:/opt/shinyproxy/aplicación.yml"
- "./shinyproxy/plantillas/:/opt/shinyproxy/plantillas"
- "./shinyproxy/templates/fragments/navbar.html:/opt/shinyproxy/templates/fragments/navbar.html"
Euler:
imagen: euler-docker
nombre_contenedor: dnv_euler
construir: ./shinyapps/euler-docker
redes:
- red dnv

redes:
dnv-net:
nombre: dnv-net


Dockerfile

DESDE openjdk:8-jre

EJECUTAR mkdir -p /opt/shinyproxy/
EJECUTAR wget https://www.shinyproxy.io/downloads/shinyproxy-2.3.0.jar -O /opt/shinyproxy/shinyproxy.jar
COPIAR aplicación.yml /opt/shinyproxy/aplicación.yml

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


aplicación.yml

apoderado:
título: LicitaR
página de destino: /
barra de navegación oculta: falso
plantilla-ruta: ./templates/
puerto: 8080
autenticación: sencilla
grupos de administración: administradores
usuarios:

  • nombre: jack
    contraseña: pasar
    grupos: administradores
  • nombre: jeff
    contraseña: pasar
    estibador:
    red interna: verdadero
    red-contenedor: dnv-net
    directorio de trabajo: /home/paulo/shinyproxy-config/
    especificaciones:
  • id: 01_hola
    nombre para mostrar: Hello Simple APP <3
    descripción: aplicación aplicación brillante
    contenedor-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    imagen-contenedor: openanalytics/shinyproxy-demo
    red-contenedor: "${proxy.docker.container-network}"
  • identificación: euler
    nombre para mostrar: número de Euler
    contenedor-cmd: ["R", "-e", "brillante::runApp('/root/euler')"]
    imagen-contenedor: euler-docker
    red-contenedor: "${proxy.docker.container-network}"

Inicio sesión:
expediente:
/log/shinyproxy.log


2) Todavía no puedo cambiar el archivo navbar.html. Cuando puse template-path: ./templates/fragments Era posible, pero de esta forma no se usaban los demás archivos que cambié (admin, app, index, login).


3) árbol

image

@PauloJhonny

Puede colocar los fragmentos dentro de las plantillas, pero primero debe reclamarlos en index.html o en algún otro lugar (lo siento, no recuerdo el lugar exacto).

Si no sabe (o no está muy seguro) lo que está haciendo, probablemente necesite colocar la carpeta fragments debajo shinyproxy/ . La razón es que debe mantener la misma estructura de carpetas que shinyproxy, a menos que sepa cómo funciona. Puede encontrar la estructura de carpetas predeterminada de shinyproxy aquí: https://github.com/openanalytics/shinyproxy/tree/master/src/main/resources

Bueno, en realidad construí un ejemplo de docker-compose para ti. Consulte https://github.com/shrektan/shinyproxy-docker-compose-example. Espero que esto aclare tu confusión.

(Nuevamente, de esta manera, estos archivos HTML de plantilla se cargan en caliente. Por lo tanto, no es necesario que apague y reinicie el contenedor acoplable una y otra vez. Simplemente edite, guarde y actualice el navegador. Este es un flujo de trabajo de ajuste de la interfaz de usuario mucho más simple. .)

La captura de pantalla del ejemplo.

image

@shrektan muchas gracias. Realmente me ayudó.

Funcionó. Estaba colocando la carpeta de fragmentos en el lugar equivocado (ver el árbol correcto). Todos los archivos están cargados en caliente ahora, excepto application.yml. Graciaaas.

image

Bueno oír eso.

Por cierto, cerrar el problema será bueno si no tienes más preguntas.

Gracias.

Gracias. :)

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