【问题标题】:How come .sh shell scripts work in Concourse tutorial but NOT in my actual codebase?为什么 .sh shell 脚本可以在 Concourse 教程中工作,但不能在我的实际代码库中工作?
【发布时间】:2018-05-17 22:59:41
【问题描述】:

对 CI 系统设置非常陌生,所以请温柔:)

我正在关注 Stark And Wayne tutorial 并试图让 Concourse CI 任务 yml 运行它通过输入文件夹找到的 shell 脚本:

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":""}

我知道这是与 docker/busybox 图像from this other thread 相关的东西。

但是……

a) 为什么它在他们的教程中使用相同的.sh 扩展和busybox 图像? (但是当我在实际项目中使用它时不是?)

b) 我怎样才能解决这个问题,以便我的项目运行 shell 脚本?哪个 docker 镜像可以工作?

【问题讨论】:

    标签: javascript continuous-integration yaml concourse


    【解决方案1】:

    我通过同事发现这个错误是由于:

    a) 需要chmod +x folder/name-of-file.sh 所以它是一个可执行文件。

    和

    b) 将#!/bin/sh 添加到我的.sh 文件的开头(因为我正在使用oh-my-zsh)。虽然我收集如果我使用 bash,这将是#!/bin/bash。

    现在 shell 脚本链接正常。

    【讨论】:

      【解决方案2】:

      我将图像更改为 ubuntu 图像并且它可以工作,但 alpine 也无法正常工作。 Ubuntu 更胖,并且有更多的初始 sh 命令。轻量级(alpine、busybox)的 sh 命令较少。

      source: {repository: ubuntu}
      

      【讨论】:

        【解决方案3】:

        a) 因为它是在 git 中创建的,所以它运行良好,因为在那里文件中设置了权限。当您修改它或创建一个新文件时,它不起作用,因为权限已更改。我假设您使用的是 Windows 机器。

        b) 解决方法是更改​​ git index 权限 git update-index --chmod=+x /path/to/file.如果您仅更改文件的本地权限,它可能会起作用,因为您正在尝试运行一次性任务,但是一旦您开始使用 concourse git 资源就会给您带来麻烦,您将在本教程的后面遇到这种情况

        参考https://github.com/concourse/concourse/issues/2161

        【讨论】:

          猜你喜欢
          • 2013-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-06
          • 2020-03-15
          相关资源
          最近更新 更多