Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

648
Views
No se puede conectar al servicio Vue CLI acoplado desde el host

Tengo un Dockerfile muy básico que instala Vue CLI y expone el puerto 8080 :

 FROM node RUN yarn global add @vue/cli EXPOSE 8080

Tengo un docker-compose.yml que conecta el puerto del host al expuesto en el contenedor:

 version: '3' services: vue: build: context: . dockerfile: ./Dockerfile volumes: - .:/home/node working_dir: '/home/node' ports: - '8080:8080'

Ejecuto un contenedor con docker-compose run vue bash y luego creo un proyecto Vue con vue create foo .

Dentro de la carpeta del proyecto, agregué un vue.config.js :

 module.exports = { devServer: { host: '0.0.0.0', port: 8080 } }

Cuando ejecuto el servidor de desarrollo con yarn serve , veo:

 App running at: - Local: http://localhost:8080/ It seems you are running Vue CLI inside a container. Access the dev server via http://localhost:<your container's external mapped port>/

Si bien muestra que está alojado localmente en localhost y no en 0.0.0.0 , parece ser un error de visualización conocido .

Sin embargo, no puedo comunicarme con Vue a través de http://localhost:8080 desde la máquina host.

He mirado varios tutoriales para configurar esto y no puedo entender por qué no puedo acceder al servidor de desarrollo de Vue.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

No me di cuenta de que docker-compose run no configura los puertos definidos en docker-compose.yml de forma predeterminada. Esto puede ser forzado por docker-compose run --service-ports .

Me decidí por una solución en la que separé la ejecución de los comandos vue cli y la ejecución del servidor de desarrollo en servicios separados:

 version: '3' services: vue-cli: build: context: . dockerfile: ./Dockerfile image: auscert/vue:latest volumes: - .:/home/node working_dir: '/home/node/demo' command: ['echo', 'Service vue-cli is run only'] vue: image: auscert/vue:latest ports: - '8080:8080' volumes: - .:/home/node working_dir: '/home/node/demo' command: ['yarn', 'serve']

Esto me permite seguir usando docker-compose run vue-cli para aplicaciones únicas y para obtener fácilmente un shell, mientras que todo el servicio de contenido lo realiza un servicio dedicado. (Agregar un echo como command para el servicio vue-cli asegura que se recupera inmediatamente en un docker-compose up ).

over 4 years ago · Santiago Trujillo Report

0

Use docker-compose up en lugar de docker-compose run que, de forma predeterminada, no expone los puertos (como ha notado)

¿Cuál es la diferencia entre up , run y start ?

Por lo general, desea docker-compose up. Use up para iniciar o reiniciar todos los servicios definidos en un docker-compose.yml. En el modo "adjunto" predeterminado, verá todos los registros de todos los contenedores. En el modo "separado" (-d), Compose sale después de iniciar los contenedores, pero los contenedores continúan ejecutándose en segundo plano.

El comando de ejecución docker-compose es para ejecutar tareas "únicas" o "ad hoc". Requiere el nombre del servicio que desea ejecutar y solo inicia contenedores para los servicios de los que depende el servicio en ejecución. Use ejecutar para ejecutar pruebas o realizar una tarea administrativa, como eliminar o agregar datos a un contenedor de volumen de datos. El comando de ejecución actúa como docker run -ti en el sentido de que abre una terminal interactiva para el contenedor y devuelve un estado de salida que coincide con el estado de salida del proceso en el contenedor.

El comando docker-compose start solo es útil para reiniciar contenedores que se crearon previamente, pero que se detuvieron. Nunca crea nuevos contenedores.

origen: https://docs.docker.com/compose/faq/

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!