{"meta":{"title":"Persistencia de variables de entorno y archivos temporales","intro":"Puedes configurar variables de entorno personalizadas para que se establezcan en el mismo valor cada vez que abras un codespace. También puedes asegurarte de que los archivos temporales no se eliminan cuando se detiene un codespace.","product":"Codespaces","breadcrumbs":[{"href":"/es/codespaces","title":"Codespaces"},{"href":"/es/codespaces/developing-in-a-codespace","title":"Desarrollar en un codespace"},{"href":"/es/codespaces/developing-in-a-codespace/persisting-environment-variables-and-temporary-files","title":"Persistencia de variables y archivos"}],"documentType":"article"},"body":"# Persistencia de variables de entorno y archivos temporales\n\nPuedes configurar variables de entorno personalizadas para que se establezcan en el mismo valor cada vez que abras un codespace. También puedes asegurarte de que los archivos temporales no se eliminan cuando se detiene un codespace.\n\n## Establecimiento de variables de entorno persistente\n\nPuedes establecer variables de entorno personalizadas persistentes de varias maneras, en función de los espacios de código, repositorios o usuarios a los que quieras que estén disponibles las variables.\n\nPara todos los métodos de configuración de variables personalizadas que se enumeran a continuación, puedes acceder a la variable personalizada en el codespace mediante la sintaxis como `echo $VARNAME`.\n\n### Para un solo espacio de código\n\nPuedes establecer el valor de la variable de entorno en el archivo `~/.bashrc` o en un archivo de configuración equivalente si no usas el shell de Bash. Por ejemplo, agrega la instrucción `VARNAME=value`.\n\nDespués de guardar el cambio en este archivo, el valor se establecerá la próxima vez que abras el codespace, o bien puedes establecerlo inmediatamente mediante un comando como `source ~/.bashrc`. La variable permanecerá configurada si se detiene y vuelve a iniciar el codespace. Sin embargo, los cambios en los archivos del directorio principal se restablecerán si vuelves a generar el contenedor, por lo que las variables establecidas en el archivo `~/.bashrc` no se conservarán en una recompilación. Para obtener más información, consulta [Impedir que los archivos temporales se eliminen automáticamente](#preventing-temporary-files-from-being-automatically-deleted).\n\n### Para todos los codespaces de un repositorio\n\nHay tres maneras de establecer variables de entorno personalizadas persistentes para todos los codespaces que crees para un repositorio:\n\n* Puede editar el archivo de configuración `devcontainer.json` del repositorio.\n* Puede utilizar un Dockerfile personalizado.\n* Puede utilizar secretos de entorno de desarrollo.\n\n#### Editar el archivo de configuración `devcontainer.json` del repositorio\n\nEditar el archivo de configuración `devcontainer.json` del repositorio y usar la propiedad `remoteEnv` para establecer el valor de la variable de entorno:\n\n```json\n{\n  \"remoteEnv\": {\n    \"VARNAME\": \"value\"\n  }\n}\n```\n\nUsa este método solo para los valores que estés satisfecho con confirmar en el repositorio como texto no cifrado. Para valores confidenciales, como tokens de acceso, utilice secretos del entorno de desarrollo.\n\nLa variable de entorno se establecerá dentro del proceso del servidor remoto del editor y estará disponible para los subprocesos de ese proceso de servidor remoto, como terminales y sesiones de depuración. Sin embargo, la variable no estará disponible de forma más amplia dentro del contenedor. Este método es útil si no necesitas establecer la variable de entorno para otros procesos en segundo plano que se ejecutan en el inicio y si usas una imagen predefinida y no tienes o quieres un Dockerfile personalizado.\n\nEsta configuración surtirá efecto al recompilar el contenedor o crear un nuevo codespace después de insertar este cambio en el repositorio. Para obtener más información sobre cómo aplicar cambios de configuración a un codespace, consulta [Introducción a los contenedores dev](/es/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers).\n\n#### Utilizar un Dockerfile personalizado\n\nSi usas un Dockerfile personalizado, puedes establecer la variable de entorno allí agregando `ENV VARNAME=value`.\n\nEste método es útil si ya tienes un Dockerfile y deseas establecer una variable en un nivel de contenedor.\n\nEsta configuración surtirá efecto al recompilar el contenedor o crear un nuevo codespace después de insertar este cambio en el repositorio. Para obtener más información sobre cómo aplicar cambios de configuración a un codespace, consulta [Introducción a los contenedores dev](/es/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers).\n\n#### Utilizar secretos de entorno de desarrollo\n\nPuede usar secretos de entorno de desarrollo para GitHub Codespaces establecer variables personalizadas para los espacios de código creados para el repositorio. Para más información, consulta [Administración de secretos específicos de la cuenta para GitHub Codespaces](/es/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces).\n\nDebes usar este método para los valores de variables de entorno que no deseas confirmar en el repositorio como texto no cifrado.\n\nEsta configuración surtirá efecto la próxima vez que crees un codespace para este repositorio o al reiniciar un codespace existente.\n\n### Para todos los codespaces que crees\n\nSi deseas establecer una variable de entorno personalizada para todos los espacios de código que crees, puedes establecerlo mediante un archivo en el repositorio `dotfiles`. Por ejemplo, agrega `VARNAME=value` en el archivo `.bash_profile`. Las variables de entorno establecidas en un dotfile son personales para ti y no se establecen para nadie más. Para más información sobre los archivos dotfile, consulta [Personalización de GitHub Codespaces para su cuenta](/es/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles).\n\n## Impedir que los archivos temporales se eliminen automáticamente\n\nAl crear un codespace, el repositorio se clona en el directorio `/workspaces` del codespace. Es un directorio persistente que se monta en el contenedor. Todo cambio que se realice dentro de este directorio (incluida la edición, la adición o la eliminación de archivos) se conserva al detener e iniciar el codespace, así como al recompilar el contenedor en el codespace.\n\nFuera del directorio `/workspaces`, el codespace contiene una estructura de directorios de Linux que varía en función de la imagen de contenedor dev que se utiliza para compilar el codespace. Puede agregar archivos o realizar cambios en los archivos fuera del directorio `/workspaces`. Por ejemplo, puede instalar nuevos programas o puede establecer la configuración del shell en un archivo como `~/.bashrc`. Como usuario no raíz, puede que no tengas acceso de escritura automáticamente a ciertos directorios, pero la mayoría de las imágenes permiten el acceso raíz a estos directorios con el comando `sudo`.\n\nFuera de `/workspaces`, a excepción del directorio `/tmp`, los directorios de un codespace están vinculados al ciclo de vida del contenedor. Esto significa que los cambios que se realicen se conservan al detener e iniciar el codespace, pero no al recompilar el contenedor. Para obtener información sobre cómo crear vínculos simbólicos para conservar los datos fuera del `/workspaces` directorio, consulte [Reconstrucción del contenedor en un codespace](/es/codespaces/developing-in-a-codespace/rebuilding-the-container-in-a-codespace#persisting-data-over-a-rebuild).\n\nEl directorio `/tmp` es una excepción porque se monta en el contenedor, pero no es persistente. Por lo tanto, el contenido del directorio `/tmp` se conserva en una recompilación, pero se borra cada vez que se detiene el codespace. Por ejemplo, el directorio `/tmp` se borra cuando una sesión de codespace agota el tiempo de espera después de un período de inactividad. Para más información, consulta [Configuración del periodo de tiempo de espera en tu GitHub Codespaces](/es/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces).\n\nSi tienes archivos temporales que deseas que estén disponibles la próxima vez que inicies el codespace, no los guardes en el directorio `/tmp`.\n\n## Información adicional\n\n* [Cambio del shell en un codespace](/es/codespaces/customizing-your-codespace/changing-the-shell-in-a-codespace)"}