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

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

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

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

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Docker

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

Q&A

解決済

1回答

4762閲覧

Docker buildの際のbundle installが終わらない

moonlight4_6_17

総合スコア12

docker-compose

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

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Docker

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

0グッド

0クリップ

投稿2021/07/13 14:33

目標

docker上でchromeを使えるようにしたい。

目標のためにやったこと

元々、Dockerを導入し、CircleCIを連携させてRSpecを自動化させたかったのだが、Docker上にchromeがないためにエラーになってしまっていた。

それを解消するためにDockerにchromeやchromedriverをインストールする記述をググりながら加えてみた。

起きている問題

Dockerfileにchromeやchromedriverをインストールする記述をググりながら加えてみたところ、Dockerfileに書かれている手順の

Run bundle install

のところで、処理が終わらず、ずっとbundle installしてしまう。
エラーが発生するわけでもない。

Dockerfileにchromeやchromedriverをインストールする為の処理を記述してから起きていることなので、Dockerfileの記述に問題があるのだと思うのですが、どこが原因なのか特定できず、、

何か分かる方いらっしゃいましたらご教示くださると幸いです。

実際の処理(最後、キャンセル)

$ docker-compose up --build Docker Compose is now in the Docker CLI, try `docker compose up` Building app [+] Building 14173.2s (11/15) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 1.39kB 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 34B 0.0s => [internal] load metadata for docker.io/library/ruby:2.6.2 2.7s => [auth] library/ruby:pull token for registry-1.docker.io 0.0s => [ 1/10] FROM docker.io/library/ruby:2.6.2@sha256:d5af6b19da 0.0s => [internal] load build context 0.0s => => transferring context: 94B 0.0s => CACHED [ 2/10] RUN apt-get update -qq && apt-get install -y 0.0s => CACHED [ 3/10] WORKDIR /myapp 0.0s => CACHED [ 4/10] COPY Gemfile /myapp/Gemfile 0.0s => CACHED [ 5/10] COPY Gemfile.lock /myapp/Gemfile.lock 0.0s => CANCELED [ 6/10] RUN bundle install 14170.2s

コード

Dockerfile

1FROM ruby:2.6.2 2RUN apt-get update -qq && apt-get install -y nodejs \ 3 && apt-get install -y chromium-driver \ 4 && CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` \ 5 && wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \ 6 && apt-get install unzip \ 7 && unzip chromedriver_linux64.zip \ 8 && rm chromedriver_linux64.zip \ 9 && mv chromedriver /usr/local/bin/ruby \ 10 && apt install -y gnupg \ 11 && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ 12 && wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ 13 && apt install -y ./google-chrome-stable_current_amd64.deb \ 14 && apt clean \ 15 && rm -rf /var/lib/apt/lists/ \ 16 && rm google-chrome-stable_current_amd64.deb 17WORKDIR /myapp 18COPY Gemfile /myapp/Gemfile 19COPY Gemfile.lock /myapp/Gemfile.lock 20# RUN gem install bundler 21# RUN bundle config set --local disable_checksum_validation true 22RUN bundle install 23 24# Add a script to be executed every time the container starts. 25COPY entrypoint.sh /usr/bin/ 26RUN chmod +x /usr/bin/entrypoint.sh 27ENTRYPOINT ["entrypoint.sh"] 28EXPOSE 3000 29 30RUN mkdir -p tmp/sockets 31RUN mkdir tmp/pids 32CMD bundle exec puma 33# Configure the main process to run when running the image 34# CMD ["rails", "server", "-b", "0.0.0.0"]

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

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

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

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

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

guest

回答1

0

自己解決

別サイトを参考にDockerfileを以下に変更したらbundle installが終わるようになったのでクローズとします。

FROM ruby:2.6.2 RUN apt-get update -qq && apt-get install -y nodejs \ && apt-get update && apt-get install -y unzip && \ CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` && \ wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/ && \ unzip ~/chromedriver_linux64.zip -d ~/ && \ rm ~/chromedriver_linux64.zip && \ chown root:root ~/chromedriver && \ chmod 755 ~/chromedriver && \ mv ~/chromedriver /usr/bin/chromedriver && \ sh -c 'wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' && \ sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' && \ apt-get update && apt-get install -y google-chrome-stable WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN gem install bundler RUN bundle config set --local disable_checksum_validation true RUN bundle install # Add a script to be executed every time the container starts. COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 RUN mkdir -p tmp/sockets RUN mkdir tmp/pids CMD bundle exec puma # Configure the main process to run when running the image # CMD ["rails", "server", "-b", "0.0.0.0"]

投稿2021/07/13 15:06

moonlight4_6_17

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問