You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions自定义容器中执行Shell脚本提示找不到文件的问题

解决GitHub Actions自定义容器中./scripts/plan.sh找不到的问题

以下是针对该报错的几种排查和解决方法:

  • 验证文件路径与工作目录
    先确认仓库中scripts/plan.sh文件存在,且Actions的工作目录正确。可以在步骤中添加调试命令,查看当前路径和文件结构:

    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Debug directory structure
        run: |
          pwd
          ls -la ./scripts/
      - name: Terraform Plan
        run: |
          npm install
          npm run plan
    
  • 为脚本添加可执行权限
    Git默认不跟踪文件的可执行权限,即使本地脚本有权限,checkout到容器后可能丢失。在执行脚本前手动添加权限:

    - name: Terraform Plan
      run: |
        npm install
        chmod +x ./scripts/plan.sh
        npm run plan
    
  • 修正脚本的Shebang行
    Alpine镜像默认没有bash解释器,如果你的plan.sh开头是#!/bin/bash,会因找不到bash而报错(表面显示脚本不存在)。将Shebang改为Alpine支持的sh:

    #!/bin/sh
    # 后续脚本内容
    
  • 明确工作目录
    自定义容器默认工作目录是/,而Actions会将代码checkout到/__w/<你的仓库名>/<你的仓库名>目录。可以在Dockerfile中提前设置工作目录:

    FROM alpine:3.18.0
    
    WORKDIR /app
    
    RUN apk add --no-cache \
      python3 \
      py3-pip \
      terraform \
      nodejs \
      npm \
      && pip3 install --upgrade pip \
      && pip3 install --no-cache-dir awscli \
      && rm -rf /var/cache/apk/*
    

    或者在Actions步骤中指定working-directory:

    - name: Terraform Plan
      working-directory: ${{ github.workspace }}
      run: |
        npm install
        npm run plan
    

内容的提问来源于stack exchange,提问作者tryingToBeBetter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:33:21