首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从封隔器中将env变量存储在真空中

从封隔器中将env变量存储在真空中
EN

Stack Overflow用户
提问于 2022-06-17 19:21:20
回答 1查看 53关注 0票数 0

我正试图在我的封隔器构建的Vagrant中export PATH=$PATH:$GOPATH/bin ,所以当我vagrant ssh进入这个盒子时,我可以调用里面的任何二进制文件。

environment_vars = ["GOPATH=$HOME/go"]允许go安装软件包,但它不会停留在盒中。我已经尝试过export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/binscripts/dependencies.sh中,但这是行不通的。

有人知道如何将env变量存储到封隔器构建的Vagrant中吗?

代码语言:javascript
复制
build {
  name        = "test-vagrant"
  description = "Testing VM"

  sources = [
    "source.vagrant.alpine"
  ]

  provisioner "shell" {
    environment_vars = ["GOPATH=$HOME/go"]
    scripts = [
      "scripts/dependencies.sh",
      ////
    ]
    execute_command = "echo 'vagrant' | sudo -S -E sh -c '{{ .Vars }} {{ .Path }}'"
  }
}

#!/bin/sh
set -eu

apk update && \
apk add \
  
////
  
go \
unzip

go install github.com/OJ/gobuster/v3@latest
EN

回答 1

Stack Overflow用户

发布于 2022-06-30 22:25:24

我不知道如何通过Packer的shell导出变量,但我有一个解决方案。

https://www.packer.io/docs/provisioners/file

代码语言:javascript
复制
provisioner "file" {
  source = "upload/go.sh"
  destination = "/tmp/go.sh"
}
provisioner "shell" {
  inline = [
  "sudo mv /tmp/go.sh /etc/profile.d/"]
}

还有一点需要注意的是,这在一开始是不起作用的(而且Packer没有抛出任何信息/错误),这是因为.vagrant.d/boxes中的“文件夹”.vagrant.d/boxes,我删除了它,修复了上传和其他一些问题。

所以我找到了另一个解决办法,哈哈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72663920

复制
相关文章

相似问题

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