Jenkins에서는 find 명령이 실패하지만 터미널에서는 실패합니다.

Jenkins에서는 find 명령이 실패하지만 터미널에서는 실패합니다.

ffmpeg를 사용하여 jenkins 빌드 작업에서 많은 수의 비디오 파일의 모든 프레임을 자동으로 내보내고 싶습니다.

슬레이브로 ssh를 실행하고 동일한 폴더에서 실행하면 스크립트가 제대로 실행됩니다.

find . -name "*.mp4" -exec ffmpeg -i {} -qscale:v 1 -vf fps=6 {}_exportedFrame_%d.jpg \;

모든 mp4 파일을 찾아 ffmpeg를 실행해야 합니다.

Jenkins가 이를 실행하면(셸 플러그인 실행) 다음 메시지와 함께 실패합니다.

08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
08:51:32 find: ffmpeg: No such file or directory
...many more lines of the same error

터미널 출력(잘 작동함):

bash-3.2$ find . -name "*.mp4" -exec ffmpeg -i {} -qscale:v 1 -vf fps=6 {}_exportedFrame_%d.jpg \;
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
...

Build Slave는 최신 버전의 Mac OS를 실행하고 있습니다. ffmpeg가 설치되었습니다.

편집: 경로 파일에 ffmpeg를 추가했습니다.

bash-3.2$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin/ffmpeg
bash-3.2$ type ffmpeg
ffmpeg is /usr/local/bin/ffmpeg

여전히 같은 오류가 발생합니다.

답변1

ffmpeg아마도 Jenkins의 업무 가 아닐 수도 있습니다 PATH.

type ffmpeg터미널에서 실행하여 Jenkins 작업의 ffmpeg위치를 ​​확인하고 비교하세요.echo $PATH

관련 정보