Dockerfile
Faça commit de um Dockerfile. A Nodion faz o build dessa imagem e executa-a.
Guias de deploy passo a passo: Docker.
Em Applications → New, ligue um repositório Gite escolha Dockerfile. A análise do repositório dá preferência a esta estratégia quando encontra um Dockerfile. Use Buildpacksse quiser que a Nodion instale o runtime.
Uma imagem pré-construída dispensa o build a partir do Git. Envie essa imagem para um registrye faça deploy dela. A importação de Docker Composena criação é experimental e não faz parte desta estratégia.
O que configura
- Base directory: o contexto de build e, num monorepo, a localização do Dockerfile.
- Dockerfile name: normalmente
Dockerfile. A análise também lista os ficheirosDockerfile.*. - Ports: as portas são preenchidas a partir das portas TCP de
EXPOSEnesse ficheiro. Adicione ou remova portas conforme necessário. Depois da criação, as portas ficam no processo web.
Pode alterar a estratégia, o caminho e o Base directory mais tarde em Settings. A alteração aplica-se no próximo deploy.
O que faz um build
- Clona a branch.
- Usa o Base directory como contexto de build. Um
.dockerignorenessa localização é respeitado. O.gitnunca é enviado. - Faz o build do Dockerfile indicado. Os ficheiros multi-stage funcionam. Não há seletor de etapa, por isso é executada a etapa final por omissão.
- Envia a imagem para o registry e arranca o processo
weba partir dela.
As variáveis de ambiente marcadas como Build no separador Environment são passadas como argumentos de build do Docker (ARG). As variáveis de runtime aplicam-se quando o processo arranca, no próximo deploy. Depois de guardados, os segredos ficam só de escrita (write-only).
Os segredos do BuildKit (RUN --mount=type=secret) não são suportados. Coloque os valores de que precisa durante o build nessas variáveis Build.
Escuta e health check
A Nodion não define PORT numa aplicação Dockerfile. Essa variável destina-se aos buildpacks. Faça o seu servidor escutar na porta do processo web (a de EXPOSE ou a que definir em Processes). Se essa lista estiver vazia, a Nodion usa o EXPOSE da imagem e, depois, 8080.
Escute em todas as interfaces, não apenas em localhost. O CMD / ENTRYPOINT da imagem é o comando de arranque por omissão. Se precisar, substitua o comando no processo.
A Nodion verifica se a aplicação está pronta com um pedido HTTP GET ao Health check path definido em Settings (por omissão /) na porta web. Uma resposta 2xx ou 3xx indica que a aplicação está pronta. Um HEALTHCHECK do Docker na imagem é ignorado.
A Nodion respeita o USER da imagem. Um nome de utilizador desconhecido faz falhar o deploy.