質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

docker-compose buildが実行できない。

fsmu
fsmu

総合スコア1

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0グッド

0クリップ

7242閲覧

投稿2021/07/01 14:03

編集2021/07/02 00:27

前提・実現したいこと

docker-compose build を実行したが、M1チップが原因なのかうまく実行されない。

発生している問題・エラーメッセージ

~/ファイル名 docker-compose build db uses an image, skipping Building api [+] Building 1.3s (6/13) => [internal] load build definition from Dockerfil 0.0s => => transferring dockerfile: 84B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ 0.9s => [internal] load build context 0.0s => => transferring context: 3.02kB 0.0s => CACHED [1/9] FROM docker.io/library/ruby:3.0@sh 0.0s => ERROR [2/9] RUN curl -sS https://dl.yarnpkg.com 0.3s ------ > [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 && mkdir /beginner-engineer: #5 0.209 Warning: apt-key output should not be parsed (stdout is not a terminal) #5 0.288 gpg: no valid OpenPGP data found. #5 0.288 Segmentation fault ------ executor failed running [/bin/sh -c 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 && mkdir /beginner-engineer]: exit code: 2 ERROR: Service 'api' failed to build : Build failed
~/ファイル名 docker-compose build db uses an image, skipping Building api [+] Building 2.5s (6/13) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 37B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ruby:3.0 1.9s => [internal] load build context 0.0s => => transferring context: 2.98kB 0.0s => CACHED [1/9] FROM docker.io/library/ruby:3.0@sha256:74b716fa99d76c618ede30d549d8b3bd7cd291aeecf2a1b23be61dde51e104 0.0s => ERROR [2/9] RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpk 0.4s ------ > [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 && mkdir /beginner-engineer: #5 0.208 Warning: apt-key output should not be parsed (stdout is not a terminal) #5 0.417 Segmentation fault #5 0.418 gpg: no valid OpenPGP data found. ------ executor failed running [/bin/sh -c 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 && mkdir /beginner-engineer]: exit code: 2 ERROR: Service 'api' failed to build : Build failed

試したこと

以下の記事をもとに、Docker Desktopの再インストールと softwareupdate --install-rosettaの実行。
https://matsuand.github.io/docs.docker.jp.onthefly/docker-for-mac/apple-silicon/

補足情報(FW/ツールのバージョンなど)

MacOS Big Sur
バージョン 11.4
M1チップ搭載

~ docker --version Docker version 20.10.7, build f0df350 ~ docker-compose --version docker-compose version 1.29.2, build 5becea4c
FROM ruby:3.0 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 \ && mkdir /beginner-engineer WORKDIR /beginner-engineer COPY Gemfile /beginner-engineer/Gemfile COPY Gemfile.lock /beginner-engineer/Gemfile.lock RUN bundle install COPY . /beginner-engineer COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

どうして docker-compose build が止まっているのか

エラーの中にヒントがあります。 exit code: 2 と出ているのは、Docker 関係なく、Linux ( 正確には bash のスクリプト) ではよく見かけます。

終了コード「2」とは、おもに構文上の記述が適切ではない場合です(参考:Exit Codes With Special Meanings

どうしたら実行できるのか(調べ方)

エラー内容にヒントがあります。

ERROR: Service 'api' failed to build : Build failed

とあることから、docker-compose.ymlの中で「api」というサービス(コンテナ)を定義している部分があるはずです。このなかで「build: .」などで、「Dockerfile」を指定されていると思いますが、それが確認・修正すべきファイルです。

エラーを再びよく見ますと

&& mkdir /beginner-engineer]: exit code: 2

このような記述がありました。

おそらく、 Dockerfile 2行目移行の RUN 命令のなかで

Dockerfile

1... 2RUN curl -sS https://... 3 apt-get install -y nodejs yarn && \ 4 mkdir /beginner-engineer: 5... 6

このような記述になっているのであれば
mkdir /beginner-engineer: のように : という余計な文字が入っています。

mkdir /beginner-engineer と書き直すと docker-compose build は通るようになるでしょう。

投稿2021/07/01 20:06

zembutsu

総合スコア1575

fsmu👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

fsmu

2021/07/01 22:07

ご回答いただきありがとうございます! ご指摘の箇所を確認しましたが「:」は見つからず、どうすれば良いのかわからない状況です。 質問の補足情報のところに、api > Dockerfileの情報を記載しましたので見ていただけますでしょうか。 何卒よろしくお願いします。
zembutsu

2021/07/01 23:06

こちらの Dockerfile そのものには問題が無いように見えます(実際、こちらを単体で docker build しましても、ファイルが手許に無い以外の場所で、エラー等はありませんでした)。 もしかすると、今の Dockerfile には、見えない所で改行コードなり何かが入り込んでいるのかもしれません。 Dockerfile を一旦別の場所に移動し、新たに Dockerfile ファイルを作成しなおし、Dockerfile を記述された通りにしたら、正常に処理されると思います。
fsmu

2021/07/02 00:32

ご回答ありがとうございます! api > Dockerfileを作成し直したところ、質問の「発生している問題・エラーメッセージ」の二つ目のコードのように表示されました。 CACHED [1/9]とERROR [2/9]の部分の記載が変化しているので、少しは前に進んでいるのだと思いますが、ここから先どうして良いかわからない状況です。 ご回答いただけますと幸いです。 何卒よろしくお願いします。

0

自己解決

以下の記事を参考した所、処理を実行することができました。
ご回答いただきありがとうございました。
https://qiita.com/MasatoraAtarashi/items/3f0317cd648ff63fa92c

投稿2021/07/03 01:16

fsmu

総合スコア1

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです