首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Docker插件时无法读取shell脚本的Packer

使用Docker插件时无法读取shell脚本的Packer
EN

Stack Overflow用户
提问于 2022-03-31 15:31:57
回答 1查看 236关注 0票数 0

我试图创建一个码头形象使用封隔器。但是,当我试图使用shell提供程序时,它无法找到shell脚本。

learn-packer.docker.terraform: /bin/sh: /tmp/script_8997.sh: not

代码语言:javascript
复制
packer {
  required_plugins {
    docker = {
      version = ">= 0.0.7"
      source = "github.com/hashicorp/docker"
    }
  }
}
source "docker" "terraform" {
  image  = var.docker_image
  commit = true
}
build {
  name    = "learn-packer"
  sources = [
    "source.docker.terraform",
  ]
  provisioner "shell" {
    script = "scripts/test.sh"
    pause_before = "5s"
  }

  provisioner "shell" {
    inline = [
       "apk update",
       "apk add bash curl",

    ]
  }

  post-processor "docker-tag" {
  repository = "learn-packer"
  tags       = ["packer-test"]
  only       = ["docker.terraform"]
  }

}

variable "docker_image" {
  type    = string
  default = "hashicorp/terraform:latest"
}
代码语言:javascript
复制
cat scripts/test.sh 

#!/usr/bin/bash
echo "How are you?"

封隔器找不到剧本的原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-17 21:57:12

我遇到了同样的问题,并设法找到了原因:

错误是非常误导的;没有找到的实际文件是在shebang中指向的二进制文件,而不是脚本本身。

默认情况下,阿尔卑斯没有安装bash,因此使用它作为shell将失败。使用/bin/sh代替为我修复它,即:

代码语言:javascript
复制
#!/bin/sh
echo "How are you?"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71695346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档