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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

2回答

3780閲覧

docker-composeでlaravel duskをコンテナ内で実行させたい

kenny_sayama

総合スコア1036

docker-compose

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

2クリップ

投稿2018/06/18 03:32

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

  • PHP 7.1
  • Laravel 5.6
  • docker-compose
  • OS X High Sierra

前提・実現したいこと

docker-composeでLaravelの動作環境を構築しました。
問題なく動作するのですが、一点問題が発覚し、ブラウザテストのDuskがコンテナ内で動作せず、
解決のヒントをいただければと思います。

該当のソースコード

docker-compose.yml

yaml

1version: '2' 2 3services: 4 web: 5 build: ./docker-config/php 6 volumes: 7 - .:/var/www 8 depends_on: 9 - mysql 10 11 nginx: 12 image: nginx 13 ports: 14 - "80:80" 15 volumes: 16 - .:/var/www 17 - ./docker-config/nginx/default.conf:/etc/nginx/conf.d/default.conf 18 depends_on: 19 - web 20 21 mysql: 22 image: mysql:5.7 23 environment: 24 MYSQL_DATABASE: development 25 MYSQL_ROOT_USER: root 26 MYSQL_ROOT_PASSWORD: testdb 27 MYSQL_USER: test 28 MYSQL_PASSWORD: testdb 29 volumes: 30 - db-data:/var/lib/mysql 31 32 phpmyadmin: 33 image: phpmyadmin/phpmyadmin 34 environment: 35 - PMA_ARBITRARY=1 36 - PMA_HOST=mysql 37 - PMA_USER=root 38 - PMA_PASSWORD=testdb 39 links: 40 - mysql 41 ports: 42 - 8080:80 43 volumes: 44 - /sessions 45 46 selenium: 47 image: selenium/standalone-chrome 48 ports: 49 - 4444:4444 50 51volumes: 52 db-data: 53 driver: local 54

DuskTestCase.php

php

1<?php 2 3namespace Tests; 4 5use Laravel\Dusk\TestCase as BaseTestCase; 6use Facebook\WebDriver\Chrome\ChromeOptions; 7use Facebook\WebDriver\Remote\RemoteWebDriver; 8use Facebook\WebDriver\Remote\DesiredCapabilities; 9 10abstract class DuskTestCase extends BaseTestCase 11{ 12 use CreatesApplication; 13 14 protected function baseUrl() 15 { 16 return 'http://nginx'; 17 } 18 19 /** 20 * Prepare for Dusk test execution. 21 * 22 * @beforeClass 23 * @return void 24 */ 25 public static function prepare() 26 { 27 //static::startChromeDriver(); 28 } 29 30 /** 31 * Create the RemoteWebDriver instance. 32 * 33 * @return \Facebook\WebDriver\Remote\RemoteWebDriver 34 */ 35 protected function driver() 36 { 37 $options = (new ChromeOptions)->addArguments([ 38 '--disable-gpu', 39 '--headless' 40 ]); 41 42 return RemoteWebDriver::create( 43 'http://selenium:4444/wd/hub', DesiredCapabilities::chrome()->setCapability( 44 ChromeOptions::CAPABILITY, $options 45 ) 46 ); 47 } 48} 49

tests/Browser/ExampleTest.php

php

1<?php 2 3namespace Tests\Browser; 4 5use Tests\DuskTestCase; 6use Laravel\Dusk\Browser; 7use Illuminate\Foundation\Testing\DatabaseMigrations; 8 9class ExampleTest extends DuskTestCase 10{ 11 /** 12 * A basic browser test example. 13 * 14 * @return void 15 */ 16 public function testBasicExample() 17 { 18 $this->browse(function (Browser $browser) { 19 $browser->visit('/') 20 ->assertSee('Laravel'); 21 }); 22 } 23} 24

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

Time: 3.49 seconds, Memory: 12.00MB There was 1 error: 1) Tests\Browser\ExampleTest::testBasicExample Error: Call to undefined method Facebook\WebDriver\Remote\RemoteWebDriver::getCapabilities() /var/www/vendor/laravel/dusk/src/Browser.php:257 /var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:152 /var/www/vendor/laravel/framework/src/Illuminate/Support/Collection.php:397 /var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:153 /var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:77 /var/www/tests/Browser/ExampleTest.php:21 ERRORS! Tests: 1, Assertions: 1, Errors: 1.

検索でcomposer update facebook/webdriverを実行すると直るという記事を見つけ試したのですが、同様のエラーが出てしまいました。

参考にしたサイトは以下です。

こちら何かわかる方いましたら、ヒントをいただけますと幸いです

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

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

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

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

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

guest

回答2

0

テストはdocker上で動かしているのでしょうか?

投稿2020/02/20 09:27

darum

総合スコア70

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

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

0

同じ状況で困っていたのですが、以下リンクの通りにしたら動きました。

https://qiita.com/uenoryo/items/bdded2dc6f8e5f2075cc

投稿2019/01/22 06:04

bws

総合スコア98

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問