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

749
Views
npm ¡ERROR! El rastreador "idealTree" ya existe al crear la imagen de Docker para el proyecto Node

Creé un proyecto node.js llamado simpleWeb. El proyecto contiene package.json e index.js.

índice.js

 const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('How are you doing'); }); app.listen(8080, () => { console.log('Listening on port 8080'); });

paquete.json

 { "dependencies": { "express": "*" }, "scripts": { "start": "node index.js" } }

También creé un Dockerfile para crear la imagen de la ventana acoplable para mi proyecto node.js.

Dockerfile

 # Specify a base image FROM node:alpine # Install some dependencies COPY ./ ./ RUN npm install # Default command CMD ["npm", "start"]

Mientras intento construir la imagen de la ventana acoplable usando "construcción de la ventana acoplable". comando que está arrojando debajo del error.

Registros de errores

 simpleweb » docker build . ~/Desktop/jaypal/Docker and Kubernatise/simpleweb [+] Building 16.9s (8/8) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 37B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/node:alpine 8.7s => [auth] library/node:pull token for registry-1.docker.io 0.0s => [internal] load build context 0.0s => => transferring context: 418B 0.0s => [1/3] FROM docker.io/library/node:alpine@sha256:5b91260f78485bfd4a1614f1afa9afd59920e4c35047ed1c2b8cde4f239dd79b 0.0s => CACHED [2/3] COPY ./ ./ 0.0s => ERROR [3/3] RUN npm install 8.0s ------ > [3/3] RUN npm install: #8 7.958 npm ERR! Tracker "idealTree" already exists #8 7.969 #8 7.970 npm ERR! A complete log of this run can be found in: #8 7.970 npm ERR! **/root/.npm/_logs/2020-12-24T16_48_44_443Z-debug.log** ------ executor failed running [/bin/sh -c npm install]: exit code: 1

El archivo de registro anterior proporciona una ruta "/root/.npm/_logs/2020-12-24T16_48_44_443Z-debug.log" donde puedo encontrar los registros completos.

Pero, el archivo anterior no está presente en mi máquina local.

No entiendo cuál es el problema.

over 4 years ago · Santiago Trujillo
13 answers
Answer question

0

Sobre la base de la respuesta de Col , también podría hacer lo siguiente en su modelo de vista:

 public class IndexVM() { @AfterCompose public void doAfterCompose(@ContextParam(ContextType.COMPONENT) Component c) { Window wizard = (Window) c; Label label = (Label) c.getFellow("lblName"); .... } }

Al hacerlo, en realidad tiene acceso al objeto de etiqueta y puede realizar todo tipo de tareas con él (label.setValue(), label.getValue(), etc.).

over 4 years ago · Santiago Trujillo Report

0

especificar el directorio de trabajo como se muestra a continuación dentro de Dockerfile funcionará:

 WORKDIR '/app'

asegúrese de usar --build en su comando docker-compose para compilar desde Dockerfile nuevamente:

 docker-compose up --build
over 4 years ago · Santiago Trujillo Report

0

Un poco tarde para la fiesta, pero para los proyectos que no deseen crear un Dockerfile para el instalador, también es posible ejecutar el instalador desde un contenedor efímero . Esto brinda acceso completo a la CLI del nodo, sin tener que instalarla en la máquina host.

El comando asume que se ejecuta desde la raíz del proyecto y que hay un archivo package.json presente. La opción -v $(pwd):/app monta el directorio de trabajo actual en la carpeta /app en el contenedor, sincronizando los archivos instalados con el directorio del host. La opción -w /app establece el directorio de trabajo de la imagen como la carpeta /app. La opción --loglevel=verbose hace que la salida del comando de instalación sea detallada. Se pueden encontrar más opciones en la página oficial de Node docker hub .

 docker run --rm -v $(pwd):/app -w /app node npm install --loglevel=verbose

Personalmente, uso un Makefile para almacenar varios comandos de contenedores efímeros que son más rápidos de ejecutar por separado del proceso de compilación. Pero claro, todo es posible :)

over 4 years ago · Santiago Trujillo Report

0

puede especificar una versión de nodo inferior a 15.

 # Specify a base image FROM node:14 # Install some dependencies COPY ./ ./ RUN npm install # Default command CMD ["npm", "start"]
over 4 years ago · Santiago Trujillo Report

0

Instalación global

En el caso de que desee instalar un paquete globalmente fuera del directorio de trabajo con un package.json , debe usar el indicador -g .

 npm install -g <pkg>

Este error puede desencadenarse si el software de CI que está utilizando, como semantic-release está integrado en el nodo e intenta instalarlo fuera de un directorio de trabajo.

over 4 years ago · Santiago Trujillo Report

0

También tenemos un problema similar, así que reemplacé mi npm con 'hilo', funcionó bien. Aquí está el código de ejemplo.

 FROM python:3.7-alpine ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1 #install bash RUN apk --update add bash zip yaml-dev RUN apk add --update nodejs yarn build-base postgresql-dev gcc python3- dev musl-dev libffi-dev RUN yarn config set prefix ~/.yarn #install serverless RUN yarn global add serverless@2.49.0 --prefix /usr/local && \ yarn global add serverless-pseudo-parameters@2.4.0 && \ yarn global add serverless-python-requirements@4.3.0 RUN mkdir -p /code WORKDIR /code COPY requirements.txt . COPY requirements-test.txt . RUN pip install --upgrade pip RUN pip install -r requirements-test.txt COPY . . CMD ["bash"]
over 4 years ago · Santiago Trujillo Report

0

Pruebe npm init y npm install express para crear el archivo package.json

over 4 years ago · Santiago Trujillo Report

0

Este problema ocurre debido a cambios en nodejs a partir de la versión 15. Cuando no se especifica WORKDIR, npm install se ejecuta en el directorio raíz del contenedor, lo que genera este error. Ejecutar la instalación de npm en un directorio de proyecto del contenedor especificado por WORKDIR resuelve el problema.

Utilice el siguiente archivo Docker:

 # Specify a base image FROM node:alpine #Install some dependencies WORKDIR /usr/app COPY ./ /usr/app RUN npm install # Set up a default command CMD [ "npm","start" ]
over 4 years ago · Santiago Trujillo Report

0

# Specify a base image FROM node:alpine WORKDIR /usr/app # Install some dependencies COPY ./package.json ./ RUN npm install COPY ./ ./ # Default command CMD ["npm","start"]

1. Esto también se escribe si cambia alguno de sus archivos de índice y la compilación y la ejecución de la ventana acoplable cambian automáticamente sus nuevos cambios en la salida de su navegador

over 4 years ago · Santiago Trujillo Report

0

La respuesta correcta es básicamente correcta, pero cuando lo intenté, todavía no funcionó. Este es el por qué:

WORKDIR especifica el contexto de la COPY que le sigue. Habiendo ya especificado el contexto en ./usr/app , es incorrecto pedir copiar desde ./ (el directorio en el que está trabajando) a ./usr/app , ya que esto produce la siguiente estructura en el contenedor: ./usr/app/usr/app .

Como resultado CMD ["npm", "start"] , que se sigue donde lo especifica WORKDIR ( ./usr/app ), no encuentra el package.json .

Sugiero usar este Dockerfile:

 FROM node:alpine WORKDIR /usr/app COPY ./ ./ RUN npm install CMD ["npm", "start"]
over 4 years ago · Santiago Trujillo Report

0

Las soluciones anteriores no me funcionaron, cambié la imagen del nodo en mi de node:alpine a node:12.18.1 y funcionó.

over 4 years ago · Santiago Trujillo Report

0

Debe especificar WORKDIR antes de la instrucción COPY para garantizar la ejecución de npm install dentro del directorio donde se encuentran todos los archivos de su aplicación. Así es como puedes completar esto:

 WORKDIR /usr/app # Install some dependencies COPY ./ ./ RUN npm install

Tenga en cuenta que simplemente puede "COPY ./ (directorio local actual) ./ (directorio contenedor que ahora es /usr/app gracias a la instrucción WORKDIR)" en lugar de "COPY ./ /usr/app"

Ahora, la buena razón para usar la instrucción WORKDIR es que evita mezclar los archivos y directorios de su aplicación con el sistema de archivos raíz del contenedor (para evitar anular los directorios del sistema de archivos en caso de que tenga etiquetas de directorios similares en los directorios de su aplicación)

Una cosa más. Es una buena práctica segmentar un poco su configuración para que cuando realice un cambio, por ejemplo, en su index.js (entonces necesita reconstruir su imagen), no necesitará ejecutar "npm install" mientras el paquete. json no ha sido modificado.

Su aplicación es muy básica, pero piense en aplicaciones grandes donde la "instalación de npm" debería llevar varios minutos.

Para hacer uso del proceso de almacenamiento en caché de Docker, puede segmentar su configuración de la siguiente manera:

 WORKDIR /usr/app # Install some dependencies COPY ./package.json ./ RUN npm install COPY ./ ./

Esto le indica a Docker que almacene en caché los primeros comandos COPY y RUN cuando no se toca package.json. Entonces, cuando cambia, por ejemplo, index.js y reconstruye su imagen, Docker usará el caché de las instrucciones anteriores (primero COPY y RUN) y comenzará a ejecutar el segundo COPY. Esto hace que su reconstrucción sea mucho más rápida.

Ejemplo de reconstrucción de imagen:

 => CACHED [2/5] WORKDIR /usr/app 0.0s => CACHED [3/5] COPY ./package.json ./ 0.0s => CACHED [4/5] RUN npm install 0.0s => [5/5] COPY ./ ./
over 4 years ago · Santiago Trujillo Report

0

En el último node:alpine3.13 , basta con copiar el contenido de la carpeta raíz en la carpeta raíz del contenedor con COPY ./ ./ , mientras se omite el comando WORKDIR . Pero como solución práctica recomendaría:

WORKDIR /usr/app : es una convención entre los desarrolladores poner el proyecto en una carpeta separada
COPY ./package.json ./ - aquí copiamos solo el archivo package.json para evitar reconstrucciones desde npm
RUN npm install
COPY ./ ./ - aquí copiamos todos los archivos (recuerde crear el archivo .dockerignore en el directorio raíz para evitar copiar su carpeta node_modules)

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!