概要
-
docker-compose up -d
を行うと「tar: command not found」「failed to solve: executor failed running...」というエラーが出て正常にビルドが完了しませんでした。今回はその解決方法を記します。
エラー内容
-
docker-compose up -d
を行うと以下のエラがー表示されました。pyenvがPython-3.7.6をダウンロードしている途中で失敗してしまいました。
# (省略)
#0 7.239 /usr/local/pyenv/plugins/python-build/bin/python-build: line 456: tar: command not found
------
failed to solve: executor failed running [/bin/bash -c pyenv install -v 3.7.6 && pyenv global 3.7.6 && pip install awscli]: exit code: 1
解決手順
- pyenv指定でインストールしてみたり、bashrcをいじってみたり試行錯誤しましたが、結論、Dockerfileに以下を追加したら解決しました。
RUN yum install -y tar
- そもそも「tar: command not found」と出ていた理由は何かというと、Dockerfileに以下のように記載があったためです。
RUN yum install -y gcc bzip2 bzip2-devel openssl openssl-devel readline
readline-devel git libffi-devel wget gcc-c++ unixODBC-devel tar.x86_64
- このtar.x86_64がうまくインストールされなかった理由は、自分のローカルマシンがM1チップを搭載しているためです。M1チップは、Intelベースのアプリケーションと互換性がないため、x86_64アーキテクチャのパッケージをインストールすることができなかったのです。
- ということで、DockerイメージのベースイメージがIntelまたはARMアーキテクチャに基づいているかどうか、とても大事であることを感じたエラー体験でした。