2017-12-05 8 views
1

私は、Concourse CI Linux VMでシェルスクリプトを実行しようとしています。しかし、私は同じエラーを取得しておいてください。 Concourse Linuxマシンに実行可能ファイルを読み込ませるにはどうしますか? (chmodスタイル)

enter image description here

が、私はそれを実行可能にし、シェルスクリプトに !#/bin/shを追加する chmod +x path/filename.shと、このローカル(Macの非VM)固定しました。

しかし、私はConcourse/VMに実行可能ファイルであることを知らせる方法を知らないのですか?私はtask.shに入れなければならないchmodコマンドがありますか?またはtask.yml?助けて!

私のコンコースCI pipeline.yml

resources: 
- name: my-git-repo 
    type: git 
    source: 
    uri: [email protected]:org-name/my-git-repo.git 
    branch: master 
    private_key: {{git-private-key}} 
- name: my-task 
    type: git 
    source: 
    uri: [email protected]:blahblahblah12345678910blah.git 
    private_key: {{git-private-key}} 

jobs: 
- name: job-build-app 
    plan: 
    - get: my-git-repo 
    trigger: true 
    - get: task 
    - task: run-build 
    file: my-task/task.yml 

マイtask.yml:マイtask.sh

--- 
platform: linux 

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

inputs: 
- name: my-task 

run: 
    path: ./my-task/task.sh 

:私は期待

!#/bin/sh 
echo this is my task shell script 

これまで単なる/上記の文字列をログアウトエコー。

代わりに、上部に500/permissionの拒否エラーが表示されます。

答えて

3

git repoのファイルは、chmod +xにする必要があります。あなたはUIで設定することはできないので、Gistでこれを行うのは苦労するでしょう。

あなたは要旨、chmod +xのクローンを作成し、再プッシュし、またはそれが実行可能であることを必要としないであろう、代わりにbash my-task/task.shを実行するために、あなたのタスクを変更することができます:

run: 
    path: bash 
    args: [./my-task/task.sh] 
+0

おかげ@alexsuraciは、そう私は固定終わりました要点をクローン化し、新しいファイルをローカルに追加し、chmodしてから押してください。すぐに働いた。 – Aid

+0

あなたは 'chmod'状態を変更するために' git update-index --chmod = + x task.sh'を使うこともできますし、[この回答に記載されているように]自動化することもできます(https://stackoverflow.com/q/14267441/1262901)。 –

関連する問題