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

215
Views
¿Cómo catear un archivo dentro de una imagen acoplable?

Suponga que hay 40 pasos en un Dockerfile. Imagine una situación en la que cambia un archivo (por ejemplo, prod.json ) y vuelve a ejecutar el tercer paso en Dockerfile al ejecutar el comando de docker build . Dado que la docker build tarda más de un minuto en ejecutarse, ¿hay alguna forma de ver el contenido del archivo prod.json en la imagen de la ventana acoplable actual? Esto me permitirá decidir si reconstruir la imagen de la ventana acoplable o no.

Explicación alternativa de mi pregunta:

  1. Ejecute docker build para crear una imagen docker con service de etiquetas (llámelo v1)
  2. Cambie un archivo (por ejemplo, prod.json ) que requería el tercer paso en Dockerfile para volver a ejecutarse (fallando así el caché)
  3. Ejecute la compilación de la docker build para crear una imagen de la ventana acoplable con el service de etiquetas (llámelo v2)
  4. Ir a un descanso y volver después de 1 hora
  5. Confundirse si la compilación actual tiene el cambio que incluyó en el segundo paso: ¿hay alguna forma de catear el archivo directamente desde la imagen de la ventana acoplable sin ejecutar el contenedor en esta etapa?
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esto parece funcionar de manera confiable para mí, ya que resuelve el conflicto del punto de entrada y asegura la salida a la salida estándar. También mata el contenedor inmediatamente después de recopilar los datos para mantener las cosas limpias, casi tan bueno como no ejecutarlo en absoluto. Espero que ayude a otros.

 docker run -it --rm -a stdout --entrypoint cat <image> <filename>

También es fácil crear un alias si lo haces mucho. Agregue la primera línea a su ~/.bash_aliases o ~/.bashrc .

 $ alias dcat='docker run -it --rm -a stdout --entrypoint cat' $ dcat <image> <filename>
over 4 years ago · Santiago Trujillo Report

0

Cuando haga docker build , docker iniciará un contenedor intermedio y ejecutará su comando dentro, luego el contenedor se eliminará una vez que finalice el proceso. Entonces, si desea verificar el contenido de algún archivo mientras la imagen aún está en construcción, simplemente docker exec -it <intermediate_container_id> /bin/bash y compruébelo.

He aquí un ejemplo detallado:

Dockerfile con proceso de compilación largo simulado :

 FROM alpine:3.3 RUN echo '["name": "docker"]' > /root/prod.json RUN echo "prod.json modified, start long build process" && sleep 120 && echo "Long build process finished"

Construye la imagen

  ~/test/long-build-dockerfile/ [test1*] docker build -t long-running-build . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM alpine:3.3 ---> 6c2aa2137d97 Step 2/3 : RUN echo '["name": "docker"]' > /root/prod.json ---> Running in 4045ab129add ---> f5d21892fa51 Removing intermediate container 4045ab129add Step 3/3 : RUN echo "prod.json modified, start long build process" && sleep 120 && echo "Long build process finished" ---> Running in dd45b269efda prod.json modified, start long build process

Ahora el proceso de compilación se detendrá durante 120 segundos aquí, luego abra otra terminal y busque el contenedor intermedio:

  ~/ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES dd45b269efda f5d21892fa51 "/bin/sh -c 'echo ..." 11 hours ago Up 4 seconds serene_gates

Entra y comprueba el contenido:

  ~/ docker exec -it serene_gates sh / # cd /root/ ~ # ls prod.json ~ # cat prod.json ["name": "docker"]
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!