#エラー発生の経過と原因
Dockerで環境構築するためにビルドを実行した結果、yarnのインストールが止まってビルドに失敗し、以下のようなエラー文が出てしまった。
=> ERROR [2/9] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo
------
> [2/9] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && apt-get update -qq && apt-get install -y nodejs yarn chromium-driver shared-mine-info && mkdir /myapp:
#5 1.202 Warning: apt-key output should not be parsed (stdout is not a terminal)
#5 1.535 gpg: no valid OpenPGP data found.
#5 1.535 Segmentation fault
------
...
どうやらDockerFileが問題のようだ。
原因はM1チップ搭載のMac
だった。
curlコマンドでは docker gpgダウンロード時にエラーが出てしまい、
curlコマンドを使うには、curlにproxy設定をしなければ動かなさそう。
#解決方法
M1チップ搭載のMacではDockerFileのコードを修正する必要がある。
今回はcurlにproxy設定をせずに実装する。
元のコード
FROM ruby:2.7.1
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update -qq \
&& apt-get install -y nodejs yarn chromium-driver shared-mime-info\
&& mkdir /myapp
...
修正後のコード
FROM ruby:2.7.1
### 以下を修正 ###
RUN wget --quiet -O - /tmp/pubkey.gpg https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
### 以上を修正 ###
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update -qq \
&& apt-get install -y nodejs yarn chromium-driver shared-mime-info\
&& mkdir /myapp
...
これで再度ビルドすると正常に起動した。
このようにDockerfileを修正しても、intelチップのMacでも動くことを確認した。
#参考文献
https://zenn.dev/junki555/articles/2de6024a191913
https://qiita.com/seigot/items/97be941d1568255fb0cd
https://qiita.com/tkj/items/c6dad4efc0dff4fecd93