Skip to content

Cum să interceptezi un container de build în Concourse cu Fly CLI

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să interceptezi un container de build în Concourse cu Fly CLI. We cover key concepts, practical examples, and best practices to help you understand and apply this topic effectively.

Comanda fly intercept deschide o sesiune shell interactivă într-un container de build Concourse, esențială pentru depanare.

Interceptare după nume build

fly -t main intercept \
  -p nume-pipeline \
  -j nume-job \
  -b 5

Output așteptat:

intercepting build nume-pipeline/nume-job #5
/ #

Interceptare în timp real

Pentru a intercepta un build în execuție:

fly -t main intercept \
  -p nume-pipeline \
  -j build

Aceasta deschide automat cel mai recent build al job-ului specificat.

Interceptare task specific

fly -t main intercept \
  -p nume-pipeline \
  -j build \
  -b 5 \
  -s compile-task

Comenzi utile în sesiunea interceptată

# Verifică fișierele disponibile
ls -la
pwd

# Verifică variabile de mediu
env | grep CONCOURSE

# Verifică resursele
cat source-code/README.md

# Testează comenzi de build
gcc --version
python --version

Interceptare cu commandă specifică

fly -t main intercept \
  -p nume-pipeline \
  -j test \
  -b 3 \
  -- /bin/bash -c "ls -la && env"

Output:

drwxr-xr-x 1 root root 4096 Jan 15 10:00 source-code
CONCOURCE_BUILD_ID=3
CONCOURCE_JOB_NAME=test
...

Interceptare pentru debugging erori

Când un build eșuează, poți intercepta build-ul înainte de finalizare:

# Pornește build-ul
fly -t main trigger-job -p nume-pipeline -j test -w &

# În alt terminal, interceptează rapid
sleep 5
fly -t main intercept -p nume-pipeline -j test

Prevenire

  • Interceptează numai build-uri în execuție (nu finalizate)
  • Folosește -s pentru a ținti un anumit task într-un job cu mai multe task-uri
  • Nu modifica fișierele în containerul interceptat -- modificările se pierd
  • Verifică log-urile înainte de a intercepta pentru a ști ce cauți

Greșeli comune

  1. Interceptare build finalizat -- containerul nu mai există după terminare
  2. Task greșit specificat -- interceptezi containerul greșit din pipeline
  3. Fără shell disponibil -- unele imagini minimale (scratch, alpine) nu au bash
Pot intercepta un build după ce s-a încheiat?

Nu, containerul este distrus imediat după finalizarea build-ului.

Ce fac dacă imaginea nu are bash?

Folosește sh în loc de bash: fly intercept -p p -j j -- /bin/sh.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech's CI debugging relies on fly intercept for rapid issue resolution.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro