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

1.1K
Views
sh: curl: no se encontró ni siquiera instale curl dentro de k8s pod

Puede ser una pregunta simple, pero no pude encontrar la solución adecuada.

Tengo una imagen de Docker como se muestra a continuación. Las cosas que me gustaría hacer simplemente ejecutan el comando curl dentro del pod de kubernetes, pero recibí un error como el que se muestra a continuación. No pude ejecutar a través de bash también.

 $ kubectl exec -ti hub-cronjob-dev-597cc575f-6lfdc -n hub-dev sh Defaulting container name to hub-cronjob. Use 'kubectl describe pod/hub-cronjob-dev-597cc575f-6lfdc -n hub-dev' to see all of the containers in this pod. /usr/src/app $ curl sh: curl: not found

Probé con bash

 $ kubectl exec -ti cronjob-dev-597cc575f-6lfdc -n hub-dev bash mand in container: failed to exec in container: failed to start exec "8019bd0d92aef2b09923de78753eeb0c8b60a78619543e4cd27069128a30da92": OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown

Dockerfile

 FROM node:12-alpine AS builder # Variables from outside ARG NODE_ENVIRONMENT=development ENV NODE_ENV=$NODE_ENVIRONMENT # Create app directory WORKDIR /usr/src/app #Install curl RUN apk --no-cache add curl -> did not work RUN apk update && apk add curl curl-dev bash -> did not work # Install app dependencies COPY package*.json ./ RUN npm install # Bundle app source COPY . . # Build Stage 2 # Take the build from the previous stage FROM node:12-alpine WORKDIR /usr/src/app COPY --from=builder /usr/src/app /usr/src/app # run the application EXPOSE 50005 9183 CMD [ "npm", "run", "start:docker" ]
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Su Dockerfile consta de varias etapas, lo que también se denomina compilación de varias etapas.

Cada instrucción FROM es una nueva etapa y una nueva imagen. En tu caso tienes 2 etapas:

  • builder donde construyes tu aplicación e instalas curl
  • second stage que copia /usr/src/app de la etapa del builder

En este caso, la segunda declaración FROM node:12-alpine contendrá solo paquetes alpine básicos, herramientas de nodo y /usr/src/app que ha copiado desde la primera etapa.

Si desea tener curl en su imagen final, debe instalar curl en la segunda etapa (después del segundo FROM node:12-alpine ):

 FROM node:12-alpine AS builder # Variables from outside ARG NODE_ENVIRONMENT=development ENV NODE_ENV=$NODE_ENVIRONMENT # Create app directory WORKDIR /usr/src/app # Do not install # Install app dependencies COPY package*.json ./ RUN npm install # Bundle app source COPY . . # Build Stage 2 # Take the build from the previous stage FROM node:12-alpine #Install curl RUN apk update && apk add curl WORKDIR /usr/src/app COPY --from=builder /usr/src/app /usr/src/app # run the application EXPOSE 50005 9183 CMD [ "npm", "run", "start:docker" ]

Como se mencionó en los comentarios, puede probarlo ejecutando el contenedor docker directamente; no es necesario ejecutar pod en el clúster k8s:

 docker build -t image . && docker run -it image sh -c 'which curl'

Es común usar una compilación de varias etapas para aplicaciones implementadas en lenguajes de programación compilados.

  1. En la primera etapa, instala todas las herramientas de desarrollo y compiladores necesarios y luego compila las fuentes en un archivo binario. Dado que no necesita y probablemente no quiera fuentes ni herramientas de desarrollador en una imagen de producción, debe crear una nueva etapa.
  2. En la segunda etapa, copia el archivo binario compilado y lo ejecuta como CMD o ENTRYPOINT. De esta manera, su imagen contiene solo código ejecutable, lo que las hace más pequeñas.
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!