Closed1
【Dockerfile】package.jsonやGemfileなどでGitからパッケージを参照したときにエラーになったときの対処法
完全にうっかりミスで時間を浪費にしてしまったのでメモ。多くの言語のパッケージ管理システムではgitからパッケージを参照できたりする。例えばpackage.json
やGemfile
などでGitHubなどのリポジトリのソースコードを参照することができる。
package.json
"dependencies": {
"package-name": "git+ssh://git@github.com/username/repo-name.git"
}
gemfile
gem "package-name", github: "catnose99/package-name"", branch: "main"
なのだけど、Dockerイメージビルド時のnpm install
やbundle install
の実行でエラーが出てしまった。
(実際にはCloudBuildでDockerfileのビルドに失敗して気づいた)
👇 Gemfileだとこんな感じでエラーが出た
Step #1: Git error: command `git clone 'https://github.com/catnose99/package-name.git'
Step #1:
Step #1: Retrying `git clone 'https://github.com/catnose99/package-name.git' "/usr/local/..." --bare --no-hardlinks --quiet` due to error (4/4): Bundler::Source::Git::GitCommandError Git error: command `git clone 'https://github.com/catnose99/package-name.git' "/usr/local/..." --bare --no-hardlinks --quiet` in directory foo-bar has failed.
で、bundle install
を行なっているDockerfileをよく見たらgit
をインストールしていなかった。
Dockerfile
RUN apk update \
&& apk upgrade \
+ && apk add --no-cache git ... \
&& ...
git
をインストールするようにしたらパッケージが問題なくダウンロードできるようになった。確かにそれはそうだよね。
このスクラップは2021/03/26にクローズされました