1

問題:

Go を実行し、 GVM (Go Version Management)をインストールし、特定の Go バージョンをインストールするためのすべてのコンポーネントをインストールする Dockerfile を作成しようとしています。

エラー:

コンテナを構築しようとすると:

docker build -t ##### .

次のエラーが表示されます。

/bin/sh: 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 がインストールされていないように見えるのはなぜですか? エラーを取り除くにはどうすればよいですか?

4

1 に答える 1

3

あなたのシェルは です/bin/shが、gvmその初期化を に置き~/.bashrc、 を期待してい/bin/bashます。

gvm非対話型の bash シェルからコマンドを実行するには、初期化スクリプトを入手する必要があります。

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
于 2017-01-03T16:40:30.433 に答える