2017-12-04 3 views
0

매우 많은 CI 시스템 설치에 초보자, 그래서 부드러운 주시기 바랍니다 :).sh 쉘 스크립트는 Concourse 튜토리얼에서 어떻게 작동 하나 실제 코드베이스에서는 작동하지 않습니까?

을 나는 Stark And Wayne tutorial &가 입력 폴더를 통해 찾아 쉘 스크립트를 실행하기 위해 중앙 홀 CI 작업 YML을 얻으려고 다음 해요 :

그래서 task.yml

--- 
platform: linux 

image_resource: 
    type: docker-image 
    source: {repository: busybox} 

inputs: 
- name: my-input-folder 

run: 
    path: ./my-input-folder/my-shell-script.sh 

은 내가 실행하면

fly --target team-name execute --config task.yml -i my-input-folder=my-input-folder

그 폴더에 들어가면 my-shell-script.sh 액션이 나타나고 거기에있는 this is working이 표시됩니다.

대신 내가 얻을 :

hijack: Backend error: Exit status: 500, message: {"Type":"","Message":"runc exec: exit status 1: exec failed: container_linux.go:264: starting container process caused \"exec: \\\"./__tests__/this-is-my-shell-script.sh\\\": permission denied\"\n","Handle":""} 

나는 이것이 고정 표시기/비지 박스 이미지, from this other thread와 함께 할 뭔가입니다 얻을.

하지만 ...

이) 왜 자신의 튜토리얼에서 같은 .sh 확장 및 busybox 이미지와 함께 작동합니까? (그렇다면 은 내 실제 프로젝트에서 사용할 때이 아닙니까?)

b) 내 프로젝트에서 셸 스크립트를 실행하도록 어떻게 해결할 수 있습니까? 어느 독점 이미지가 효과가 있을까요?

답변

1

나는이 오류에 기인 동료를 통해 알게 : chmod +x folder/name-of-file.sh에 필요

A) 그래서 실행 파일입니다. 내가 오 - 내 - zsh을 사용하고 같은 (내 .sh 파일의 시작 부분에 #!/bin/sh에 추가

B)). bash를 사용하고 있다면 모으는 데 #!/bin/bash이 될 것입니다.

이제 쉘 스크립트가 잘 연결됩니다.

관련 문제