Docker(Ubuntu) で Node.js バージョン指定インストール時に「Version 'x.y.z-1nodesource1' for 'nodejs' was not found」「returned a non-zero code 100」となる場合の対処法
はじめに
Docker(Docker-Compose) で Node.js をバージョン指定してインストールする際に、以下エラーが表示される場合の対処法。
1 | E: Version 'x.y.z-1nodesource1' for 'nodejs' was not found |
※Docker 関係なくて、単に Ubuntu/Debian の問題な気もするが未確認
TL;DR
- Docker/Ubuntu で
apt-get install -y nodejs=x.y.z-1nodesource1
実行でエラーE: Version 'x.y.z-1nodesource1' for 'nodejs' was not found
- パッチバージョンでアップデートが無いか確認
- ex:
https://deb.nodesource.com/node_13.x/pool/main/n/nodejs/
- ex:
- アップデートがある場合は
apt-get
箇所のバージョンを修正する
目次
環境・条件
1 | $ cat /etc/os-release |
詳細
前置き
Ubuntu/Debian で Node.js をバージョン指定してインストール
Ubuntu/Debian では、Node.js を apt-get
実行時に =<version>-1nodesource1
を付けるとバージョン指定してインストールできる。
1 | $ apt-get install -y nodejs=12.16.1-1nodesource1 |
なので、Dockerfile だと以下のように記述する。
1 | RUN apt-get install -y nodejs=12.16.1-1nodesource1 |
問題内容
で、これで docker-compose build
してみると E: Version '12.16.1-1nodesource1' for 'nodejs' was not found
となり、ビルドが失敗することがあった。
1 | $ docker-compose build |
解決方法
なんのことはなく、(自分の場合は)単にバージョン指定が古いのが原因だった。
1 | -RUN apt-get install -y nodejs=12.16.1-1nodesource1 |
パッチバージョンのアップデートがある場合、古い方をインストールしようとするとエラーになるらしい。(マイナーバージョンでも起こるかも?)細かい理由は不明。
Dockerfile
修正後、docker-compose build
実行したところ問題なくビルドできた。
※以下を参考にした。
- Index of /node_12.x/pool/main/n/nodejs/
- Docker build failed by nodejs=8.16.0-1nodesource1 installation · Issue #337 · doccano/doccano
まとめ
- Docker/Ubuntu で
apt-get install -y nodejs=x.y.z-1nodesource1
実行でエラーE: Version 'x.y.z-1nodesource1' for 'nodejs' was not found
- パッチバージョンでアップデートが無いか確認
- ex:
https://deb.nodesource.com/node_13.x/pool/main/n/nodejs/
- ex:
- アップデートがある場合は
apt-get
箇所のバージョンを修正する
その他・メモ
はじめ、returned a non-zero code: 100
のエラーの方で調べてしまい、下記のページにたどり着いた。
- DockerのbuildでThe command ‘apt-get install ‘ returned a non-zero code: 100 となった時の対処法 - Qiita
- Docker cache and apt-get update. – Dat’s homepage
(別に上記ページが悪いわけではないのだが、)キャッシュまわりが悪さしているのかと勘違いしてしまい、ビルド時のオプション変えてみたり、イメージ消してみたりと右往左往してしばらくハマってた。
なお、前から PJ やってた人に聞いてもエラーは起きない(なぜなら手元にビルド済のイメージがあるから)ということもあり、「自分の環境が悪いのか??」とより頭を抱えることになってしまった。
参考文献
- Index of /node_12.x/pool/main/n/nodejs/
- Docker build failed by nodejs=8.16.0-1nodesource1 installation · Issue #337 · doccano/doccano
- DockerのbuildでThe command ‘apt-get install ‘ returned a non-zero code: 100 となった時の対処法 - Qiita
- Docker cache and apt-get update. – Dat’s homepage
関連記事
- docker-compose, nginx, mkcert で HTTPS(SSL)化
- docker-lambda を使って AWS Lambda Function を開発する方法
- docker-lambda + sharp で画像変換する AWS Lambda Function
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)
- Laravel で現在の URL 取得方法まとめ
- Laravel で Cookie を使う(参照/設定/削除)