Pular para o conteúdo

Deploy de site estático

Site estático é o que já está pronto para o navegador: HTML, CSS, JS e imagens. Na W8 Hub ele sobe pelo Build Pack Static, a partir de um repositório do GitHub.

Escolha o Build Pack antes de escrever qualquer Dockerfile. Site já compilado usa Static (ou Static SPA). O Dockerfile é um modo à parte, para quem quer controle total do ambiente — não é o caminho para publicar HTML e CSS.

“Build” quer dizer três coisas

A mesma palavra cobre etapas diferentes, e só uma delas é sua quando o site é estático:

Etapa Quem faz Onde acontece
Compilar o site (gerar HTML, CSS e JS) Você Na sua máquina ou no CI, antes do push
Montar a imagem do container A W8 Hub No deploy, conforme o Build Pack escolhido
Publicar (subir o container) A W8 Hub No deploy

Com Static, a compilação fica do seu lado: a W8 Hub recebe os arquivos prontos. A montagem e a publicação aparecem nos logs do deploy.

Qual modo usar

O que você envia Origem Modo
HTML, CSS e JS já compilados Repositório GitHub Static
SPA já compilada (React, Vue, Angular), com as rotas atendidas pelo mesmo index.html Repositório GitHub Static SPA
Site que precisa ser compilado antes (gerador de site, TypeScript, Markdown) Repositório GitHub Compile você mesmo, envie a saída pronta e use Static
App que roda um servidor e tem comando start Repositório GitHub Nixpacks
Repositório com Dockerfile próprio Repositório GitHub Dockerfile
Imagem já construída em um registro Imagem Docker Sem Build Pack — a imagem já vem pronta

O Build Pack só aparece quando a origem é um repositório GitHub. Detalhes de cada modo em Modos de build.

Do commit ao ar

  1. Compile o site na sua máquina ou no CI e confira que a saída é só arquivo estático.
  2. Faça commit da saída compilada no repositório e push na branch conectada.
  3. Crie a instalação com origem GitHub e Build Pack Static (ou Static SPA). O passo a passo do assistente está em Criar uma instalação.
  4. Ative um health check antes de considerar o deploy pronto.

Depois de publicar:

Página padrão do Nginx depois do deploy

O deploy terminou e o domínio responde, mas a página é “Welcome to nginx!”. O Nginx está no ar e não encontrou o seu index.html no caminho que está servindo. Confira:

  1. Origem Imagem Docker com nginx:latest (ou outra imagem pronta de Nginx): essa imagem é só o Nginx padrão. Para publicar seus arquivos, use a origem GitHub com Static.
  2. Build Pack Dockerfile com um Dockerfile que parte de FROM nginx e não copia (COPY) os seus arquivos para a imagem.
  3. Arquivos numa subpasta: se a saída compilada ficou em dist/site ou parecido, o servidor pode estar procurando o index.html na raiz e servindo a página padrão. Confira o caminho que a instalação serve antes de trocar o Build Pack.

Se nada disso explicar, chame o suporte com o commit e o link dos logs do deploy.