es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecutando un servidor de desarrollo de Vite dentro de un contenedor de Docker.

Tengo una aplicación Vue-cli que estoy intentando convertir a vite. Estoy utilizando Docker para ejecutar el servidor. Revisé algunos tutoriales y logré que vite se ejecute en modo de desarrollo sin errores. Sin embargo, el navegador no puede acceder al puerto. Es decir, cuando estoy en la línea de comando de mi MacBook (fuera de Docker) no puedo hacer una solicitud curl:

$ curl localhost:8080
curl: (52) Respuesta vacía del servidor

Si intento con localhost:8081 obtengo el mensaje Error al conectar. Además, si ejecuto el servidor de desarrollo de webpack, funciona normalmente, así que sé que el puerto de mi contenedor está expuesto.

Además, si ejecuto curl en la misma máquina virtual donde se ejecuta el servidor de vite, funciona, así que sé que vite está funcionando.

Aquí están los detalles:

En package.json:


“dev”: “vue-cli-service serve”,
“vite”: “vite”,

El archivo completo vite.config.ts:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
    resolve: { alias: { '@': '/src' } },
    plugins: [vue()],
    server: {
        port: 8080
    }
})

El comando que inicia el contenedor:

docker-compose run --publish 8080:8080 --rm app bash

El archivo docker-compose.yml:

version: '3.7'

services:
  app:
    image: myapp
    build: .
    container_name: myapp
    ports:
      - "8080:8080"

El Dockerfile:

FROM node:16.10.0

RUN npm install -g npm@8.1.3
RUN npm install -g @vue/cli@4.5.15

RUN mkdir /srv/app && chown node:node /srv/app

USER node

WORKDIR /srv/app

El comando que ejecuto dentro del contenedor Docker para vite:

npm run vite

El comando que ejecuto dentro del contenedor Docker para vue-cli:

npm run dev

Por lo tanto, para resumir: mi configuración funciona cuando se ejecuta el servidor de desarrollo de vue-cli, pero no funciona al usar el servidor de desarrollo de vite.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que has configurado correctamente tu contenedor de Docker, pero es posible que el problema sea con el reenvío de puerto. Es posible que el reenvío de puerto no esté funcionando correctamente, por lo que el navegador no puede acceder al puerto.

    Para solucionar este problema, puedes intentar ejecutar docker ps para comprobar si el reenvío de puerto está funcionando correctamente. Si no es así, puedes intentar cambiar la configuración de reenvío de puerto en tu archivo docker-compose.yml. Además, puedes intentar ejecutar netstat -an para comprobar si el puerto está siendo utilizado por otro proceso.

    Si el reenvío de puerto está funcionando correctamente, entonces el problema puede ser con la configuración de Vite. Puedes intentar comprobar el archivo vite.config.ts para asegurarte de que el puerto esté configurado correctamente. Además, puedes intentar ejecutar curl desde dentro del contenedor de Docker para asegurarte de que el servidor Vite esté funcionando correctamente.

    Si todavía tienes problemas, puedes intentar consultar la documentación de Vite para obtener más consejos de solución de problemas.

Comments are closed.