首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/bin/sh: 1: gvm:未找到

/bin/sh: 1: gvm:未找到
EN

Stack Overflow用户
提问于 2017-01-03 16:00:50
回答 1查看 4.8K关注 0票数 1

问题:

我正在尝试创建一个Dockerfile,它安装所有要运行Go的组件,安装GVM (Go版本管理),并安装特定的Go版本。

错误:

当我尝试用以下方法构建容器时:

代码语言:javascript
复制
docker build -t ##### .

我知道这个错误:

/bin/sh: 1: gvm:未找到 命令'/bin/sh -c gvm installgo1.4 -B‘返回一个非零代码: 127

安装在这里:

代码语言:javascript
复制
/root/.gvm/scripts/env/gvm
/root/.gvm/scripts/gvm
/root/.gvm/bin/gvm

我试过的是:

它显然能够安装GVM,但无法使用它。为什么?我想也许我需要刷新.bashrc或者.bash_profile .但那不管用,因为它们不存在。

Dockerfile:

代码语言:javascript
复制
FROM #####/#####

#Installing Golang dependencies
RUN apt-get -y install curl git mercurial make binutils bison gcc build-essential

#Installing Golang

RUN ["/bin/bash", "-c", "bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)"]
#gvm does not exist here... why?
RUN gvm install go1.4 -B
RUN gvm use go1.4

问题:

为什么似乎没有安装GVM?如何消除错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-03 16:40:30

您的shell是/bin/sh,但是gvm将它的初始化放在~/.bashrc中,并期望/bin/bash

您需要源gvm初始化脚本,以便从非交互式bash运行命令:

代码语言:javascript
复制
RUN ["/bin/bash", "-c", ". /root/.gvm/scripts/gvm && gvm install go1.4 -B"]
RUN ["/bin/bash", "-c", ". /root/.gvm/scripts/gvm && gvm use go1.4"]

或者更好的方法是将要执行的命令放在一个bash脚本中,并将其添加到图像中。

代码语言:javascript
复制
#!/bin/bash
set -e

source /root/.gvm/scripts/gvm
gvm install go1.4
gvm use go1.4
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41447459

复制
相关文章

相似问题

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