Site
Self-host seu site deco
Deploy do site (Docker)
O estado e a configuração do sistema são totalmente definidos no sistema de arquivos. Assim, o estado do site é auto-contido no próprio sistema de arquivos, sem a necessidade de comunicação com sistemas externos por padrão. No entanto, o site pode acessar bancos de dados, serviços SaaS ou outros serviços web, conforme o código implementado pelo desenvolvedor, mas isso não é um requisito obrigatório do runtime da Deco.
Para facilitar o processo de deploy, oferecemos uma estratégia simples utilizando um Dockerfile.
Dockerfile
Para realizar o deploy em Docker, copie o código abaixo para um arquivo
Dockerfile na raiz do seu projeto. É necessário configurar, no mínimo, a
variável de ambiente ENV DECO_SITE_NAME
para refletir o nome do seu site ou
projeto.
Explicação do Dockerfile
Aqui estão alguns detalhes importantes sobre o Dockerfile
acima, que podem
precisar de personalização conforme o seu caso de uso:
-
FROM denoland/deno:alpine
- Define a imagem base do Docker. Você pode especificar uma versão exata, como
FROM denoland/deno:2.0.1.
- Define a imagem base do Docker. Você pode especificar uma versão exata, como
-
EXPOSE 8000
- Expõe a porta onde a aplicação estará disponível.
-
RUN echo -e ... >> _docker_deps.ts
- Define as dependências que serão cacheadas para evitar a busca por pacotes externos durante a execução.
-
RUN deno cache --allow-import --frozen main.ts dev.ts _docker_deps.ts
- Realiza o cache das dependências do projeto.
-
ARG GIT_REVISION=1
- Permite definir um argumento de build para identificar revisões do projeto.
-
ENV DECO_SITE_NAME=yoursitename
- Define uma variável de ambiente usada para identificar o site no runtime Deco.
-
ENV DENO_DEPLOYMENT_ID=$GIT_REVISION
- Variável usada para gerenciar o cache dos assets do site, devendo ser alterada a cada novo build.
-
CMD ["run", "--cached-only", "-A", "--unstable-kv", "main.ts"]
- Comando que executa o servidor com as permissões necessárias.
Deploy docker
Para criar a imagem Docker com base no seu projeto, execute o seguinte comando no diretório raiz:
docker build -t site_image .
Se necessário, você pode passar o argumento GIT_REVISION
para identificar uma
revisão específica do build:
docker build --build-arg GIT_REVISION=2 -t site_image .
Finalmente, crie e execute o container Docker:
docker run -p 8000:8000 --name site_container site_image
Com isso, seu site estará rodando em um container Docker, pronto para uso.
Was this page helpful?