Guías

Acceso a la shell de las apps

Cuando se abra el acceso a la shell, podrás abrir una shell dentro de una app en marcha, o ejecutar allí un solo comando, para ver lo que ve tu código: sus archivos, su entorno y su red.

Todavía no disponible

El acceso a la shell todavía no está disponible. Se abrirá a todos los planes en una próxima versión; esta guía describe cómo funcionará.

Abrir una shell

bash
$ codaracloud exec web --client my-workspace --project website --env production

Esto conecta tu terminal con la app en marcha web. Obtienes una shell interactiva normal (bash si la imagen lo tiene, y si no sh), con el redimensionado y Ctrl-C funcionando como esperas. Sal con exit.

La shell se abre en el contenedor de la propia app, el que atiende tu tráfico. Codara elige por ti una instancia en marcha y en buen estado; tú no indicas ningún pod ni contenedor. Si la app no tiene ninguna instancia en marcha, el comando lo dice y no hace nada.

Ejecutar un comando

Pon el comando después de --. La salida se imprime en tu terminal y codaracloud termina con el código de salida del propio comando, así que sirve en scripts:

bash
$ codaracloud exec web --client my-workspace --env production -- node -v $ codaracloud exec web --client my-workspace --env production -- ls -la /app
OpciónSignificado
--clientEl espacio de trabajo de la app. Hace falta cuando el nombre no es único.
--project, --envAcotan la app cuando el mismo nombre existe en varios proyectos o entornos.
--tty (-t), --no-ttyFuerzan o desactivan el terminal interactivo. Por defecto lo tienes cuando tu entrada y tu salida son terminales.

Sin terminal, por ejemplo en un script o una tubería, debes indicar un comando. Lo que envíes por la tubería se pasa al comando, y el código de salida es 255 si la conexión se corta antes de que el comando termine.

Quién puede usarlo

El acceso a la shell es para los miembros que pueden desplegar la app: propietarios, administradores y desarrolladores de la organización. Estará disponible para todos los planes cuando se abra. Un token de API necesita el permiso apps:exec. Cada sesión queda registrada en el registro de actividad, con quién la abrió y cuándo. Codara no guarda los argumentos, la entrada ni la salida de tus comandos.

Una shell puede leer tus secretos

Dentro del contenedor puedes leer las variables de entorno de la app, incluidos los secretos y las contraseñas de las bases de datos. Abre una shell solo en las apps que tienes permiso para depurar, y nunca pongas un secreto como argumento de un comando: los argumentos pueden acabar en logs por el camino.

Qué esperar

  • Es la app en vivo. Una shell en un entorno de producción corre junto a los datos de producción. Prefiere comandos de solo lectura.
  • Los cambios no duran. Los archivos que creas o editas viven solo en el contenedor en marcha. Desaparecen en el siguiente deploy, reinicio o cambio de escala. Usa volúmenes para los datos que deben quedarse.
  • Una sola instancia. Si la app corre en varias instancias, obtienes una de ellas.
  • Las sesiones inactivas se cierran. Una sesión sin entrada ni salida durante 30 minutos termina, y puedes tener hasta 4 abiertas a la vez.
  • Los reinicios te desconectan. Cuando Codara reinicia el servicio de conexiones, ves un mensaje. Ejecuta el mismo comando otra vez.
  • Los jobs no están incluidos. El acceso a la shell es para apps en marcha; para los jobs consulta Jobs y cron y Logs y métricas.

Si lo que quieres es una máquina privada donde trabajar, y no una app en marcha, consulta Codara Boxes.

Última actualización: