

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configuração de um devfile para um Ambiente de Desenvolvimento
<a name="devenvironment-devfile"></a>

Um *devfile* é um padrão aberto que ajuda você a personalizar seus ambientes de desenvolvimento em toda a sua equipe. Um devfile é um arquivo YAML que codifica as ferramentas de desenvolvimento necessárias. Ao configurar um devfile, você pode pré-determinar as ferramentas de projeto e as bibliotecas de aplicativos de que precisa e a Amazon as CodeCatalyst instala em seu ambiente de desenvolvimento para você. O devfile é específico do repositório para o qual foi criado, e você pode criar um devfile separado para cada repositório. Seu Ambiente de Desenvolvimento oferece suporte a comandos e eventos e fornece uma imagem padrão de devfile universal.

Se você criar um projeto usando o esquema vazio, poderá criar um devfile manualmente. Se você criar um projeto usando um blueprint diferente, CodeCatalyst cria um devfile automaticamente. O diretório `/projects` de um Ambiente de Desenvolvimento armazena os arquivos que são extraídos do repositório de origem e do devfile. O diretório `/home`, que está vazio quando você cria um Ambiente de Desenvolvimento pela primeira vez, armazena os arquivos criados enquanto usa o Ambiente de Desenvolvimento. Tudo nos diretórios `/projects` e `/home` de um Ambiente de Desenvolvimento é armazenado de forma persistente.

**nota**  
A pasta `/home` só será alterada se você alterar o nome do devfile ou o nome do componente devfile. Se você alterar o nome do devfile ou do componente devfile, o conteúdo do diretório `/home` será substituído e os dados do diretório `/home` anterior não poderão ser recuperados.

Se você criar um Ambiente de Desenvolvimento com um repositório de origem que não contenha um devfile na raiz ou criar um Ambiente de Desenvolvimento sem um repositório de origem, um devfile universal padrão será aplicado automaticamente ao repositório de origem. A mesma imagem devfile universal padrão é usada para todos IDEs. CodeCatalyst atualmente suporta a versão 2.0.0 do devfile. Para ter mais informações sobre o devfile, consulte [Esquema Devfile - Versão 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).

**nota**  
Você só pode incluir imagens de contêiner público em seu devfile.

Os ambientes de desenvolvimento conectados à VPC oferecem suporte apenas às seguintes imagens de devfile:
+ Imagem universal
+ Imagens privadas do Amazon ECR, se o repositório estiver na mesma região da VPC

**Topics**
+ [Edição do repositório devfile para um Ambiente de Desenvolvimento](devenvironment-devfile-moving.md)
+ [Recursos do Devfile suportados pelo CodeCatalyst](#devenvironment-devfile-support)
+ [Exemplo de um devfile para um Ambiente de Desenvolvimento](#devenvironment-devfile-example)
+ [Solução de problemas de um repositório devfile usando o modo de recuperação](#devenvironment-devfile-recovery)
+ [Especificar imagens de devfile universais para um Ambiente de Desenvolvimento](devenvironment-universal-image.md)
+ [Comandos Devfile](devenvironment-devfile-commands.md)
+ [Eventos do Devfile](devenvironment-devfile-events.md)
+ [Componentes do Devfile](devenvironment-devfile-components.md)

## Recursos do Devfile suportados pelo CodeCatalyst
<a name="devenvironment-devfile-support"></a>

CodeCatalyst suporta os seguintes recursos do devfile na versão 2.0.0. Para ter mais informações sobre o devfile, consulte [Esquema Devfile - Versão 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema).


| Recurso | Tipo | 
| --- | --- | 
| `exec` | Command | 
| `postStart` | Event | 
| `container` | Componente | 
| `args` | Propriedades do componente | 
| `env` | Propriedades do componente | 
| `mountSources` | Propriedades do componente | 
| `volumeMounts` | Propriedades do componente | 

## Exemplo de um devfile para um Ambiente de Desenvolvimento
<a name="devenvironment-devfile-example"></a>

Veja a seguir um exemplo de um devfile simples.

```
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
```

Os logs de inicialização, comandos e eventos do devfile são capturados e armazenados em `/aws/mde/logs`. Para depurar o comportamento do devfile, inicie seu Ambiente de Desenvolvimento usando um devfile ativo e acesse os logs.

## Solução de problemas de um repositório devfile usando o modo de recuperação
<a name="devenvironment-devfile-recovery"></a>

Se houver algum problema ao iniciar seu devfile, ele entrará no modo de recuperação para que você ainda possa se conectar ao ambiente e corrigir o devfile. No modo de recuperação, a execução de `/aws/mde/mde status` não conterá a localização do devfile.

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

Você pode verificar o erro nos logs em `/aws/mde/logs`, corrigir o devfile e tentar executar `/aws/mde/mde start` novamente.