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

1.4K
Vistas
¿Cómo solucionar el error inesperado del operador de Docker?

Soy un supernovato con respecto a Docker y recientemente cambié un proyecto de App Engine a Cloud Run. Fue fácil, me encantó.

Ahora, sin embargo, estoy tratando de actualizar la imagen (ya que agregué un código nuevo). Entiendo que necesito ingresar a un contenedor real para actualizar una imagen (¿creo?), Pero cuando intento docker run , aparece un error unexpected operator .

Me está volviendo absolutamente loco.

No puedo iniciar el contenedor. No puedo editar mi imagen. No puedo cargar una nueva versión en Cloud Run.

Por lo que puedo deducir, un error unexpected operator tiene que ver con el Dockerfile. Entonces, aquí está mi Dockerfile (según lo proporcionado por Google para implementar una imagen en Cloud Run).

Dockerfile

 #Use the official Node.js 10 image #https://hub.docker.com/_/node FROM node:10 #Create and change to the app directory WORKDIR /usr/src/app #Copy application dependency manifests to the container image. #A wild card is used to ensure both package.json AND package-lock.json are copied. #Copying this separately prevents re0running npm install on every code change. COPY *package.json ./ #Install production dependences RUN npm install --only=production #COPY local code to the container image COPY . . #Run the web service on container startup CMD [ "npm", "start" ]

El error unexpected operator específico que recibo es /bin/sh: 1: [: npm.: unexpected operator

Sinceramente, no sé qué hacer en este momento. Creo que necesito un segundo par de ojos para examinarlo.

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

0

Apuesto a que limpió su código, intencionalmente o no, cuando proporcionó el fragmento de código CMD [ "npm", "start" ] Era casi seguro que era CMD [ "npm" "start" ] cuando creó inicialmente el image e intenté ejecutarlo como un contenedor.

Separando el mensaje de error: /bin/sh: 1: [: npm.: unexpected operator

Le dice que el script de shell tiene un problema en la línea uno. ¿Qué script de shell? El script de shell que se activa con la línea CMD. La parte de la línea 1 se debe a que, tomada en el contexto de la ejecución de CMD, esa es la única línea.

Luego dice, de manera bastante ilegible, que tiene un problema después de la declaración npm. La forma más fácil de causar eso accidentalmente es olvidar la coma.

Dado que aparentemente pudiste poner las cosas en marcha más tarde, lo más probable es que:

  • Compiló la imagen desde Dockerfile con la coma faltante
  • Intenté ejecutar la imagen como un contenedor y no funcionó debido a la CMD rota en la imagen construida.
  • Arreglado el error
  • Intenté ejecutar la imagen aún rota como contenedor y no funcionó porque estaba usando la misma imagen.
  • Publicó su código aquí, ahora con la solución en su lugar, pero parece que no funciona porque todavía estaba ejecutando la imagen anterior
  • Obtuve consejos aquí, incluido probar una reconstrucción
  • Reconstruyó una nueva imagen del Dockerfile, recogiendo la coma fija
  • Ejecuté la nueva imagen como un contenedor y todo pareció arreglarse mágicamente
over 4 years ago · Santiago Trujillo Denunciar

0

Tienes que reconstruir la imagen desde Dockerfile después de cada cambio

 docker build --tag="npm_app:latest" -f Dockerfile . docker run npm_app
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