簡體   English   中英

/ bin / sh:1:1:gvm:找不到

[英]/bin/sh: 1: gvm: not found

問題:

我正在嘗試創建一個Dockerfile,該文件安裝所有組件以運行Go,安裝GVM(Go版本管理)以及安裝特定的Go版本。

錯誤:

當我嘗試使用以下方法構建容器時:

docker build -t ##### .

我收到此錯誤:

/ bin / sh:1:1:gvm:找不到

命令'/ bin / sh -c gvm install go1.4 -B'返回了非零代碼:127

安裝在這里:

/root/.gvm/scripts/env/gvm
/root/.gvm/scripts/gvm
/root/.gvm/bin/gvm

我試過的

它顯然可以安裝GVM,但無法使用它。 為什么? 我以為也許我需要刷新.bashrc.bash_profile ...,但是那不起作用,因為它們不存在。

Dockerfile:

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? 如何擺脫錯誤?

您的外殼程序是/bin/sh ,但是gvm將其初始化放入~/.bashrc ,並期望/bin/bash

您需要獲取gvm初始化腳本來從非交互式bash shell運行命令:

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腳本中,然后將其添加到映像中。

#!/bin/bash
set -e

source /root/.gvm/scripts/gvm
gvm install go1.4
gvm use go1.4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM