> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ambarks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dockerfile personalizado

> Controle total do ambiente do deploy.

# <Icon icon="code" color="#0516ee" size={30} /> Dockerfile personalizado

Use Dockerfile quando você precisar de controle total do ambiente: versões específicas, pacotes do sistema, múltiplas etapas ou um servidor customizado.

## Regras essenciais

* A aplicação deve escutar em `0.0.0.0`.
* A porta usada pelo servidor deve bater com a porta interna configurada no projeto.
* Evite processos em background; mantenha 1 processo principal no `CMD`.

## Exemplo (Node.js)

```Dockerfile theme={null}
FROM node:20-alpine

WORKDIR /app
COPY package*.json ./
RUN npm ci

COPY . .
RUN npm run build

ENV NODE_ENV=production
EXPOSE 3000
CMD ["npm", "run", "start"]
```

## Quando preferir `ambarks.json`

Se você só precisa ajustar comandos de install/build/start, normalmente `ambarks.json` é mais simples.

## Links relacionados

* [Runtimes suportados](/projetos/runtimes)
* [Como usar ambarks.json](/projetos/ambarks-json)
* [Portas e domínios](/projetos/portas-dominios)
