Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

979
Vistas
Cómo crear un archivo docker para una aplicación VueJs

Soy nuevo en Docker. Creé una aplicación con VueJs2 que interactúa con una API externa. Me gustaría ejecutar la aplicación en docker.

Aquí está mi archivo docker-compose.yml

 version: '3' services: ew_cp: image: vuejs_img container_name: ew_cp build: context: . dockerfile: Dockerfile volumes: - '.:/app' - '/app/node_modules' ports: - '8080:8080'

Aquí está mi Dockerfile:

 FROM node:14.17.0-alpine as develop-stage WORKDIR /app COPY package*.json ./ RUN npm install RUN yarn install COPY . . EXPOSE 8080 CMD ["node"]

Aquí está el comando de construcción que ejecuto para construir mi imagen en un contenedor.

 docker-compose up -d

La imagen y el contenedor se construyen sin errores, pero cuando ejecuto el contenedor, se detiene de inmediato. Entonces el contenedor no se está ejecutando. ¿Están configurados correctamente los archivos DockerFile y Compone?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En primer lugar, ejecuta npm install e yarn install , que hacen lo mismo, solo que usan diferentes administradores de paquetes. En segundo lugar, está utilizando CMD ["node"] que no inicia su aplicación vue, por lo que no se está ejecutando ningún trabajo y Docker se está cerrando.

Para la aplicación vue, normalmente desea crear la aplicación con activos estáticos y luego ejecutar un servidor http simple para servir el contenido estático.

 FROM node:lts-alpine # install simple http server for serving static content RUN npm install -g http-server # make the 'app' folder the current working directory WORKDIR /app # copy 'package.json' to install dependencies COPY package*.json ./ # install dependencies RUN npm install # copy files and folders to the current working directory (ie 'app' folder) COPY . . # build app for production with minification RUN npm run build EXPOSE 8080 CMD [ "http-server", "dist" ]

Su archivo docker-compose podría ser tan simple como

 version: "3.7" services: vue-app: build: context: . dockerfile: Dockerfile container_name: vue-app restart: always ports: - "8080:8080" networks: - vue-network networks: vue-network: driver: bridge

para ejecutar el servicio desde docker-compose use la propiedad de command en su docker-compose.yml .

 services: vue-app: command: > sh -c "yarn serve"
over 4 years ago · Santiago Trujillo Denunciar

0

No estoy seguro del problema, pero al usar command: tail -f /dev/null en su archivo docker-compose , mantendrá su contenedor para que pueda rastrear el error dentro de él y encontrar su problema. Puede hacerlo ejecutando docker exec -it <CONTAINER-NAME> bash y rastreando los registros de errores en su contenedor.

 version: '3' services: ew_cp: image: vuejs_img container_name: ew_cp build: context: . dockerfile: Dockerfile volumes: - '.:/app' - '/app/node_modules' command: tail -f /dev/null ports: - '8080:8080'

En su Dockerfile , debe iniciar su aplicación, por ejemplo, npm run start o cualquier otro script que esté utilizando para ejecutar su aplicación en su package.json .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda