Desdobrar o Nuxt na Plataforma Serverless da Koyeb
Desdobrar o Nuxt na Plataforma Serverless da Koyeb com Docker
A Koyeb é uma plataforma serverless amigável ao desenvolvedor para desdobrar aplicações globalmente. A plataforma permite você ininterruptamente executar contentores do Docker, aplicações web, APIs com desdobramento baseado no Git, escalamento nativo automático, uma rede de limite global, e serviço de coordenação e descoberta embutido.
Neste guia, nós mostraremos como dockerizar e desdobrar uma aplicação Nuxt na plataforma Koyeb.
A Koyeb permite você desdobrar contentores do Docker a partir do registo de sua escolha. Neste guia nós usamos o Docker Hub para guardar nossa imagem mas você está livre de usar o Registo de Contentor do GitHub , o Registo de Contentor do GitLab ou qualquer outro provedor de registo de contentor.
Requisitos
Para seguir com êxito e completar este guia, você precisa:
- Um projeto Nuxt para desdobrar. Você pode usar o create-nuxt-app para criar um projeto Nuxt e começar.
- Uma conta no Koyeb para desdobrar e executar a aplicação Nuxt dockerizada
- Uma conta no Docker Hub para empurrar a imagem do Docker e desdobrar ela no Koyeb
Começar
Dentro do diretório da sua aplicação Nuxt execute o seguinte comando para instalar as dependências:
yarn
Uma vez que as dependências estão instaladas, execute a sua aplicação e certifique que tudo está funcionando corretamente:
yarn dev
Dockerizar a sua aplicação
Para Dockerizar a sua aplicação Nuxt, você precisa criar um ficheiro Dockerfile dentro do diretório do seu projeto contendo o conteúdo abaixo:
FROM node:lts as builder
WORKDIR /app
COPY . .
RUN yarn install \
--prefer-offline \
--frozen-lockfile \
--non-interactive \
--production=false
RUN yarn build
RUN rm -rf node_modules && \
NODE_ENV=production yarn install \
--prefer-offline \
--pure-lockfile \
--non-interactive \
--production=true
FROM node:lts
WORKDIR /app
COPY /app .
ENV HOST 0.0.0.0
EXPOSE 80
CMD [ "yarn", "start" ]
Para construir uma imagem do Docker execute o seguinte comando:
docker build . -t <YOUR_DOCKER_HUB_USERNAME>/my-nuxt-project
Este comando construirá a imagem do Docker com o nome <YOUR_DOCKER_HUB>/my-nuxt-project. Um vez que a construção estiver terminada, você pode executar um contentor usando a imagem localmente para validar que tudo está funcionado como o esperado.
docker run -p 3000:3000 <YOUR_DOCKER_HUB_USERNAME>/my-nuxt-project
Abra o seu navegador e navegue até o http://localhost:3000 para visualizar a página de desembarque da sua aplicação.
Empurrar a sua imagem do Docker para o registo de contentor
Depois de nossa imagem do Docker estar construida e funcional dentro do nosso teste, nós podemos agora carregar ela para um registo de contentor. Nesta documentação, nós guardaremos a nossa imagem no Docker Hub. Dentro do seu terminal execute o comando abaixo para empurrar a imagem:
docker push <YOUR_DOCKER_HUB_USERNAME>/my-nuxt-project
Desdobrar a aplicação Nuxt para produção na Koyeb
No Painel de Controlo da Koyeb, clique no botão Create App (Criar Aplicação).
Dentro do formulário, preencha o campo Docker image (imagem do Docker) com o nome da imagem de nós criamos previamente a qual deve parecer com <YOUR_DOCKER_HUB_USERNAME>/my-nuxt-project.
Marque a caixa Use a private registry (Usar um registo privado) e, dentro do campo selecionar, clique em Create Repository Secret (Criar Segredo de Repositório).
Um modal abre pedindo por:
-
um nome para o Segredo que será criado, nós podemos usar para instância
docker-hub-secret - o provedor de registo para gerar o segredo contendo as credenciais do seu registo privado, no nosso caso o Docker Hub
- o seu nome de usuário do Docker Hub e a palavra-chave. Nós recomendamos a você criar um código (token) de acesso a partir do Docker Hub para usar no lugar da sua palavra-chave. Uma vez que você tem preenchido todos os campos, clique no botão Create (Criar).
Nós não precisamos mudar o Path (Caminho), a nossa aplicação estará disponível na raiz do nosso domínio: /.
Dê um nome a sua Aplicação, exemplo nuxt-app, e clique em Create App (Criar Aplicação).
Você pode adicionar mais regiões para desdobrar suas aplicações, definir variáveis de ambiente, e definir escalamento horizontal de acordo com as suas necessidades.
Você será automaticamente redirecionado para a página Koyeb App onde você pode seguir o progresso do desdobramento da sua aplicação Nuxt. Dentro de poucos segundos, um vez que a sua aplicação está desdobrada, clique na Public URL (URL Pública) que termina com koyeb.app.
A sua aplicação Nuxt agora está executando na Koyeb e beneficia do escalamento nativo automático, HTTPs (SSL) automático, auto-estabilização, e balanceador de carregamento global através do limite da nossa rede.
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli