🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

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

Q&A

解決済

1回答

2107閲覧

docker-composeでビルドができない

Yuta_for

総合スコア21

docker-compose

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

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

0グッド

2クリップ

投稿2019/10/06 11:49

編集2019/10/07 13:39

DockerコンテナでRails環境を構築しようとしていますが、ビルドがうまくいきません。
docker-compose buildでイメージをビルドを実行しても以下のように途中で失敗してしまいます。

docker

1yuta@yuta-PC:~/Desktop/work/docker/Rails_build$ docker-compose build 2Building app 3Step 1/11 : FROM ruby:2.6.1-stretch 4 ---> 99ef552a6db8 5Step 2/11 : WORKDIR /app 6 ---> Using cache 7 ---> 0f9390519fa6 8Step 3/11 : ARG BUNDLE_INSTALL_ARGS="-j 4" 9 ---> Using cache 10 ---> d6168e20b112 11Step 4/11 : COPY Gemfile Gemfile.lock ./ 12 ---> Using cache 13 ---> c6dab6616a18 14Step 5/11 : RUN bundle install ${BUNDLE_INSTALL_ARGS} 15 ---> Running in ade7b495733a 16Fetching gem metadata from https://rubygems.org/... 17Retrying fetcher due to error (2/4): Errno::EADDRNOTAVAIL Failed to open TCP connection to index.rubygems.org:443 (Cannot assign requested address - connect(2) for "index.rubygems.org" port 443). 18Fetching gem metadata from https://rubygems.org/.... 19. 20Retrying fetcher due to error (3/4): Errno::EADDRNOTAVAIL Failed to open TCP connection to index.rubygems.org:443 (Cannot assign requested address - connect(2) for "index.rubygems.org" port 443).......... 21Fetching gem metadata from https://rubygems.org/............. 22Fetching gem metadata from https://rubygems.org/............. 23Resolving dependencies... 24Bundler could not find compatible versions for gem "minitest": 25 In Gemfile: 26 rails (= 5.2.2.1) was resolved to 5.2.2.1, which depends on 27 activesupport (= 5.2.2.1) was resolved to 5.2.2.1, which depends on 28 minitest (~> 5.1) 29 30Could not find gem 'minitest (~> 5.1)', which is required by gem 'activesupport 31(= 5.2.2.1)', in any of the sources. 32ERROR: Service 'app' failed to build: The command '/bin/sh -c bundle install ${BUNDLE_INSTALL_ARGS}' returned a non-zero code: 6

Step5でrubygems.orgへのコネクションが失敗し、その後のBundleのインストールがうまくできていないと思いました。
bundle関係のエラーはbundle updateでうまく行くケースがありますが、dockerコンテナの場合どのように記述すればいいのか分からず、悩んでいる状態です。

DockerfileとGemfileはこのようになっています。

Dockerfile

1#Use Ruby-image from Public DockerSite 2FROM ruby:2.6.1-stretch 3 4#Directory to place Application 5WORKDIR /app 6 7#Install gem by Bundler 8ARG BUNDLE_INSTALL_ARGS="-j 4" 9COPY Gemfile Gemfile.lock ./ 10RUN bundle install ${BUNDLE_INSTALL_ARGS} 11 12#Configure ENTRYPOINT 13COPY docker-entrypoint.sh / 14RUN chmod +x /docker-entrypoint.sh 15ENTRYPOINT ["/docker-entrypoint.sh"] 16 17#Copy Application file 18COPY . ./ 19 20#Configure command and ports to exec server 21CMD ["rails", "server", "-b", "0.0.0.0"] 22EXPOSE 3000

Gemfile

1source "https://rubygems.org" 2 3gem "rails", "= 5.2.2.1"

その他の構成はこちらのgithubのレポジトリに格納してあります。

以上です、ご教授のほどお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

Step5で使用している過去に使用したdocker imageのキャッシュ元が存在していなかったみたいです。。。

Docker

1Step 5/11 : RUN bundle install ${BUNDLE_INSTALL_ARGS} 2 ---> Running in ade7b495733a

一度、不要となったイメージ(ついでにコンテナも)消したらキャッシュを読み込まずにうまくいきました。
不要になったイメージは削除してクリーンにしたほうが良さそうですね。

投稿2019/10/19 03:41

Yuta_for

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問