

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de un devfile para un entorno de desarrollo
<a name="devenvironment-devfile"></a>

Un *devfile* es un estándar abierto que le ayuda a personalizar los entornos de desarrollo de su equipo. Un devfile es un archivo YAML que codifica las herramientas de desarrollo necesarias. Al configurar un devfile, puede predeterminar las herramientas de proyecto y las bibliotecas de aplicaciones que necesita y Amazon las CodeCatalyst instala en su entorno de desarrollo por usted. El devfile es específico del repositorio para el que se creó y se puede crear un devfile distinto para cada repositorio. El entorno de desarrollo admite comandos y eventos, y proporciona una imagen de devfile universal predeterminada.

Si crea un proyecto con el esquema vacío, puede crear un devfile manualmente. Si crea un proyecto con un plano diferente, CodeCatalyst crea un devfile automáticamente. El directorio `/projects` de un entorno de desarrollo almacena los archivos que se extraen del repositorio de código fuente y el devfile. El directorio `/home`, que está vacío al crear por primera vez el entorno de desarrollo, almacena los archivos que se crean mientras se utiliza el entorno de desarrollo. Todo lo que hay en los directorios `/projects` y `/home` de un entorno de desarrollo se almacena de forma persistente.

**nota**  
La carpeta `/home` solo cambia si cambia el nombre del devfile o del componente del devfile. Si cambia el nombre del devfile o del componente del devfile, se sustituirá el contenido del directorio `/home` y no se podrán recuperar los datos del directorio `/home` anterior.

Si crea un entorno de desarrollo con un repositorio de código fuente que no contiene un devfile en su raíz, o si crea un entorno de desarrollo sin un repositorio de código fuente, se aplicará automáticamente un devfile universal predeterminado al repositorio de código fuente. Para todos se utiliza la misma imagen de devfile universal predeterminada. IDEs CodeCatalyst actualmente es compatible con la versión 2.0.0 de devfile. Para obtener más información sobre el devfile, consulte [Devfile schema - Version 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).

**nota**  
Solo puede incluir imágenes de contenedor público en su archivo de desarrollo.

Tenga en cuenta que los entornos de desarrollo conectados a una VPC solo admiten las siguientes imágenes de devfile:
+ Imagen universal
+ Imágenes privadas de Amazon ECR, si el repositorio está en la misma región que la VPC

**Topics**
+ [Edición de un devfile de repositorio para un entorno de desarrollo](devenvironment-devfile-moving.md)
+ [Funciones de Devfile compatibles con CodeCatalyst](#devenvironment-devfile-support)
+ [Ejemplo de un devfile para un entorno de desarrollo](#devenvironment-devfile-example)
+ [Solución de problemas de un devfile de repositorio mediante el modo de recuperación](#devenvironment-devfile-recovery)
+ [Especificación de imágenes de devfile universales para un entorno de desarrollo](devenvironment-universal-image.md)
+ [Comandos de devfile](devenvironment-devfile-commands.md)
+ [Eventos de devfile](devenvironment-devfile-events.md)
+ [Componentes de devfile](devenvironment-devfile-components.md)

## Funciones de Devfile compatibles con CodeCatalyst
<a name="devenvironment-devfile-support"></a>

CodeCatalyst admite las siguientes funciones de devfile en la versión 2.0.0. Para obtener más información sobre el devfile, consulte [Devfile schema - Version 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).


| Característica | Tipo | 
| --- | --- | 
| `exec` | Comando | 
| `postStart` | Event | 
| `container` | Componente | 
| `args` | Propiedades del componente | 
| `env` | Propiedades del componente | 
| `mountSources` | Propiedades del componente | 
| `volumeMounts` | Propiedades del componente | 

## Ejemplo de un devfile para un entorno de desarrollo
<a name="devenvironment-devfile-example"></a>

A continuación se muestra un ejemplo de un devfile sencillo.

```
schemaVersion: 2.0.0
metadata:
  name: al2
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      mountSources: true
      command: ['sleep', 'infinity']
  - name: dockerstore
commands:
  - id: setupscript
    exec:
      component: test
      commandLine: "chmod +x script.sh"
      workingDir: /projects/devfiles
  - id: executescript
    exec:
      component: test
      commandLine: "/projects/devfiles/script.sh"
  - id: yumupdate
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - setupscript
    - executescript
    - yumupdate
```

Los registros de inicio, comandos y eventos del devfile se capturan y almacenan en `/aws/mde/logs`. Para depurar el comportamiento del devfile, inicie el entorno de desarrollo con un devfile que funcione y acceda a los registros.

## Solución de problemas de un devfile de repositorio mediante el modo de recuperación
<a name="devenvironment-devfile-recovery"></a>

Si hay algún problema al iniciar el devfile, este pasará al modo de recuperación para que pueda seguir conectándose a su entorno y corregir el devfile. Mientras esté en modo de recuperación, al ejecutar `/aws/mde/mde status` no se incluirá la ubicación del devfile.

```
{
            "status": "STABLE"
        }
```

Puede comprobar el error en los registros bajo `/aws/mde/logs`, corregir el devfile e intentar volver a ejecutar `/aws/mde/mde start`.