DEV Community

Cover image for Como rodar seu projeto Nuxt em um container Docker? 🐳
Hosana Barcelos
Hosana Barcelos

Posted on

1

Como rodar seu projeto Nuxt em um container Docker? 🐳

Oi! Nesse guia, vou te mostrar como é bem simples e rápido dockerizar uma aplicação Nuxt. Bora lá?


Nuxt

O objetivo e foco desse guia é entender como podemos adicionar um projeto Nuxt dentro de um container Docker. Inicialmente, para criar e rodar o seu projeto Nuxt, consulte a documentação oficial do Nuxt.

Docker

O arquivo YAML

Na raiz do seu projeto Nuxt, precisamos criar um arquivo YAML chamado docker-compose.yml.

Dentro desse arquivo, iremos adicionar nossa configuração para dockerizar a nossa aplicação. Abaixo, você consegue visualizar como ficou o meu arquivo de configuração:

version: '3'

services:
  app:
    image: node:14.18.2-buster-slim
    container_name: docnux
    volumes:
      - .:/var/www/html
    working_dir: /var/www/html
    stdin_open: true
    tty: true
    ports:
      - 3007:3000
Enter fullscreen mode Exit fullscreen mode

Você pode usar essa configuração para o seu projeto também, mas é importante entender o que cada carinha presente nesse arquivo faz:

version→ Versão do docker-compose que você quer utilizar;

services→ Instanciar os serviços (containers) que você quer subir;

app→ Nome do serviço;

image→ Declara a imagem que vai ser utilizada para subir o container em questão (é possível pegar essa imagem em https://hub.docker.com/search?image_filter=official&type=image&q=);

container_name → Declara o nome do container (para não gerar um aleatório);

volumes → Atrelar diretórios de fora do container (ou seja, na sua máquina) para algum diretório dentro do container (diretório de fora : diretório de dentro)

working_dir → Diretório de entrada a partir do momento em que o container é inicializado;

stdin_open → Quando true, permite que a entrada padrão de dados (standard input ou stdin) esteja "aberta". Isso serve para poder rodar o container interativo, ou seja, você poderá acessar o seu shell, executar comandos e etc;

tty → (TeleTypeWriter);

ports → Expor portas para uso posterior. Nesse contexto, podemos atrelar portas de fora do container à portas de dentro do container (porta de fora : porta de dentro).

Subindo nosso container Docker

Após definir as configurações do seu container, basta executar o seguinte comando:

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

Se a mensagem no terminal retornar …done significa que seu container foi upado e está pronto!

Usando nosso projeto Nuxt com Docker

Agora, para rodar comandos dentro do container, é necessário seguir o padrão de comando:

docker-compose exec <nome do serviço> <comando>
Enter fullscreen mode Exit fullscreen mode

Para a nossa aplicação Nuxt, podemos rodar dois comandos iniciais:

docker-compose exec app npm i
Enter fullscreen mode Exit fullscreen mode
docker-compose exec app npm run dev
Enter fullscreen mode Exit fullscreen mode

Repare, o docker-compose executa os comandos do Nuxt dentro do meu serviço nomeado como app, assim como vimos na criação do YAML.

Pronto! Você pode visualizar a aplicação no navegador em http://localhost:3007 e agora seu projeto Nuxt está dockerizado. Massa, né? 🚀

Lembre-se: Esse guia é produzido de maneira rápida e objetiva. Para saber mais sobre imagens e qual escolher ou usar no seu container, consulte a documentação oficial do Docker Hub.


Curtiu? Se conecte comigo onde preferir acessando minhas redes em: https://www.hosana.me.

Image of AssemblyAI tool

Transforming Interviews into Publishable Stories with AssemblyAI

Insightview is a modern web application that streamlines the interview workflow for journalists. By leveraging AssemblyAI's LeMUR and Universal-2 technology, it transforms raw interview recordings into structured, actionable content, dramatically reducing the time from recording to publication.

Key Features:
🎥 Audio/video file upload with real-time preview
🗣️ Advanced transcription with speaker identification
⭐ Automatic highlight extraction of key moments
✍️ AI-powered article draft generation
📤 Export interview's subtitles in VTT format

Read full post

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay