exit code 100というエラー文について
Docker fileを構成しいざ、buildしようとしたら
こちらのエラー文発生!
ERROR: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y sudo wget vim" did not complete successfully: exit code: 100
ま、エラー100はapt-get が失敗したことを意味するらしいです。
エラーの原因の特定
- キャッシュ
- Ubuntuのバージョン
- 各パッケージ名
こんなところかなと概要を把握しれっつトライ!✨(こんなキラキラしていません、辛い顔しながらやってましたw)
エラー解決
番号順にやっていったところ、キャッシュやUbntu、各パッケージはエラーが起きておらず、
1 | FROM ubuntu:latest 2 | >>> RUN apt-get update 3 | RUN apt-get install -y sudo 4 | RUN apt-get install -y wget
続けてやっていたら2 | >>> RUN apt-get update
が出ていて
RUN apt-get update
ですでに exit code: 100 が出てることに気づきました。
つまり パッケージのアップデートに失敗している状態でした。
ここで2時間くらいエラーと戦っていて一回休憩して
udemyをもう一度見直してみると
M1チップをお使いの方は
docker build --platform linux/amd64 .
のように--platformオプションをつけてくださいとの一文が‥
うわーとおもい試してみるとしっかりbuildすることができました。
これを見て思ったのは、しっかり動画視聴を最後までして焦らず進めようと心に誓いました。
焦る気持ちはわかるけども、実務に入ってからが勝負なので
コツコツと積み上げていこうと思いました。
ちなみに--platform
って何だ?と思い調べて見ました。
その前にCPU
アーキテクチャ
だったりとわからない単語の連発だったのでアウトプット
していきます。
理解していなかった単語について
- CPU
- アーキテクチャ
- CPUアーキテクチャ
以上こちらの単語について理解するためにアウトプットしていきます。
CPU
わかりやすく説明するとパソコンの部品の一つで脳みそみたいなとこです!
実際に計算したり、処理を実行する部分になります。
自分はコンピュータの脳みそが1番しっくりきました。笑
アーキテクチャとは
構成って感じですね 建築の用語からとった形みたいです。
システムの骨組み、構造設計のこと
CPUアーキテクチャとは
CPUアーキテクチャは、そのCPUの設計を簡潔に紹介するもの
わかりやすく書くとコンピュータの脳みその構成です!
これが1番わかりやすい!w
よし、わからない単語を整理したところで問題の--platformオプション
について
入りますか!
--platformオプション
--platform
は「どのCPUアーキテクチャ向けにイメージを作るか/動かすか」を指定するオプション。
- 例:--platform=linux/amd64 → Intel/AMD向け
- 例:--platform=linux/arm64 → M1/M2 MacなどARM向け
amd64とは
→amd64 は 64ビットのx86系CPU向けアーキテクチャ
arm64
→armアーキテクチャの64ビット版(正式には AArch64)
しらべたらきりねーよ笑
ま、要するにmac使うときはarm64
で
intelはamd64
はこっちってことでしょ?
で、macでやってるけどLinuxのカーネルの依存関係からCPUアーキテクチャ(コンピュータの脳みその構成)を一緒にする!
だから--platform
を使用して統一させたってこと!
理解した!
感想
エラーを解決してまた俺は一つ強くなった。
調べたら沼にハマる。キリよくあげる。