GH Actions中Packer执行Shell脚本提示目录不存在的问题
Packer Shell Provisioner在GitHub Actions中无法访问指定目录
我当前使用GitHub Actions结合Packer和Ansible构建环境,调用packer build命令时,Packer的shell provisioner执行Shell脚本时无法访问指定目录。
文件结构
REPO ├─ .github/workflow ├─ packer | ├─ image1/... | ├─ image2/... | └─ build.sh └─ scripts ├─ runtimes | ├─ node | ├─ java | ├─ docker | └─ install.sh └─ ...
GitHub Workflow配置
name: Release AMI run-name: "Release sc-${{ inputs.release_name }}" on: workflow_dispatch: inputs: ... jobs: release: steps: - name: 'Checkout' uses: actions/checkout@v3 - name: 'Run `packer build`' run: | echo "Debug: GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" echo "Debug: PWD=$(pwd)" echo "Debug: Directory contents:" ls -la export PATH="/home/runner/.local/bin:$PATH" bash images/build.sh \ "${{ inputs.aws_cli_version }}" \ "${{ inputs.codedeploy_version }}" \ "${{ inputs.ssm_channel }}" \ "${{ inputs.docker }}" \ "${{ inputs.node_version }}" \ "${{ inputs.java_version }}" \ "${{ github.workspace }}" \ "${{ github.action }}"
Packer配置(build.pkr.hcl)
... provisioner "shell" { script = "${path.cwd}/scripts/runtimes/install.sh" environment_vars = [ "GITHUB_WORKSPACE=${var.GITHUB_WORKSPACE}", "GITHUB_ACTIONS=${var.GITHUB_ACTIONS}" ] timeout = "15m" } ...
install.sh脚本内容
echo "Debug from utils.sh:" echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" sudo ls $GITHUB_WORKSPACE
错误信息
==> amazon-ebs.jammy: ls: cannot access '/home/runner/_work/repo-name/repo-name': No such file or directory
我理解的执行流程是GitHub Action Runner → build.sh脚本 → packer → install.sh脚本,且未切换作业,目录应保持一致,请问我哪里操作有误?
内容的提问来源于stack exchange,提问作者ZeuS
相关产品推荐
相关产品推荐

