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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

docker-compose

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

Docker

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

10470閲覧

docker-compose実行でエラー「error while creating mount source path '/dev/shm': mkdir /dev/shm: file exists」

fukazume

総合スコア78

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

docker-compose

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

Docker

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

2クリップ

投稿2020/09/04 03:43

編集2020/09/04 03:48

##質問
Windowsで、Qiita投稿のDocker上でSeleniumとHeadless ChromeとPython3を動かすを試みている最中ですが、表題のエラーが発生しました。検索してみましたが解決策が見つかっておりません。解決方法や回避策をお教えいただけませんでしょうか。

また、皆様のWindows + Docker環境では再現いたしませんでしょうか。

説明不足な点などございましたら、適宜追記してまいります。どうぞよろしくお願い申し上げます。

##再現手順
コマンドプロンプトで

  1. git clone https://github.com/sikkimtemi/selenium を実行する
  2. cd selenium/ を実行する
  3. docker-compose up -dを実行する
  4. 当該エラーが発生する

cmd

1プロジェクトのディレクトリ\selenium>docker-compose up -d 2Creating selenium-hub ... done 3Creating chrome ... error 4Creating python ... done 5 6ERROR: for chrome Cannot start service chrome: error while creating mount source path '/dev/shm': mkdir /dev/shm: file exists 7 8ERROR: for chrome Cannot start service chrome: error while creating mount source path '/dev/shm': mkdir /dev/shm: file exists 9ERROR: Encountered errors while bringing up the project.

##実行したファイルの詳細
docker-compose.yml

dockercomposeyaml

1selenium-hub: 2 image: selenium/hub 3 container_name: 'selenium-hub' 4 ports: 5 - 4444:4444 6 7chrome: 8 image: selenium/node-chrome-debug 9 container_name: 'chrome' 10 links: 11 - selenium-hub:hub 12 ports: 13 - 5900:5900 14 volumes: 15 - /dev/shm:/dev/shm 16 17#firefox: 18# image: selenium/node-firefox-debug 19# container_name: 'firefox' 20# ports: 21# - 5910:5900 22# links: 23# - selenium-hub:hub 24 25python: 26 build: './python-selenium' 27 container_name: 'python' 28 links: 29 - selenium-hub:hub 30 command: 'tail -f /dev/null' 31 working_dir: '/root/script/' 32 volumes: 33 - ./script/:/root/script/ 34 environment: 35 - 'TZ=Asia/Tokyo'

./python-selenium配下のDockerfile

Dockerfile

1FROM python:3 2 3# vimとseleniumをインストール 4RUN set -x && \ 5 apt-get update && \ 6 apt-get install -y vim && \ 7 pip install selenium

##環境
Windows 10
Docker Desktop v2.3.0.4(46911)
Docker Engine v19.03.12

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

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

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

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

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

guest

回答1

0

ベストアンサー

現在、Windows では WSL2 環境であっても
ホスト側の RAM ディスクをマウントすることはできないようです
参考: BrowserWebDriverContainer does not start if shared memory not set under WSL2 · Issue #2552 · testcontainers/testcontainers-java

RAM の割当量は固定となりますが、次の設定で起動できることを確認しました:

diff

1selenium-hub: 2 image: selenium/hub 3 container_name: 'selenium-hub' 4 ports: 5 - 4444:4444 6 7chrome: 8 image: selenium/node-chrome-debug 9 container_name: 'chrome' 10 links: 11 - selenium-hub:hub 12 ports: 13 - 5900:5900 14+ shm_size: '2gb' 15- volumes: 16- - ./dev/shm:/dev/shm 17 18#firefox: 19# image: selenium/node-firefox-debug 20# container_name: 'firefox' 21# ports: 22# - 5910:5900 23# links: 24# - selenium-hub:hub 25 26python: 27 build: './python-selenium' 28 container_name: 'python' 29 links: 30 - selenium-hub:hub 31 command: 'tail -f /dev/null' 32 working_dir: '/root/script/' 33 volumes: 34 - ./script/:/root/script/ 35 environment: 36 - 'TZ=Asia/Tokyo'

実行結果:

console

1$ docker-compose ps 2 Name Command State Ports 3----------------------------------------------------------------------- 4chrome /opt/bin/entry_point.sh Up 0.0.0.0:5900->5900/tcp 5python tail -f /dev/null Up 6selenium-hub /opt/bin/entry_point.sh Up 0.0.0.0:4444->4444/tcp

参考: Quick start | SeleniumHQ/docker-selenium: Docker images for the Selenium Grid Server

投稿2020/09/04 06:52

y_shinoda

総合スコア3272

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

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

fukazume

2020/09/04 07:39

いつもご丁寧なサポートをいただき深く深く感謝申し上げます!ご教示いただいた方法でチュートリアルのsample.pyまで実行することができました!初めてDocker上のSeleniumを動作させることができて感動しすぎて嬉しすぎて腹踊りしてるくらいです!お忙しい中とは想像いたしますが、誠にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問