2017-11-21 3 views
0

私のプロジェクトの機能テストにドッカーイメージを使用しています。この画像はアルパインに基づいており、スーパーバイザーによって実行されているnginxとphp-fpmサービスを持っています。私の機能テストは、このドッカーインスタンスへの呼び出しを休止します。travis-ci内に作成されたドッカーコンテナがテスト用のNGINXポートに対応していません

基本的に.travis.yml:

  • がコンテナ
  • コールテストするためにはPHPUnitを開始
  • イメージを構築します。

画像が細かく作成され、コンテナがUPしています。私はこれを確認するためにいくつかのデバッグ情報を追加しました:

>> docker run -d --rm --name resttemplate-test-instance -v /home/travis/build/byjg/php-rest-template:/srv/web -p "127.0.0.1:80:80" resttemplate-test 
f3986de1c86629123896a0aa7f6ec407f617f261383c3b6a358e9dfcd3d06d77 
Exit status : 0 

$ docker ps -a 
CONTAINER ID  IMAGE    COMMAND     CREATED     STATUS     PORTS          NAMES 
f3986de1c866  resttemplate-test "docker-php-entryp..." Less than a second ago Up Less than a second 443/tcp, 127.0.0.1:80->80/tcp, 9000/tcp resttemplate-test-instance 

$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' resttemplate-test-instance 
172.17.0.2 

しかし、ときに私はすべての単一のテストのために続くメッセージだPHPUnitの実行:

cURL error 56: Recv failure: Connection reset by peer (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) 

私はラインでの既存のすべてのステップを行を繰り返した場合を私のローカル環境で.travis.ymlは正常に動作します。このエラーはtravisでのみ発生します。ここで https://travis-ci.org/byjg/php-rest-template/jobs/305476720#L728

は私.travis.ymlを持っている:

sudo: required 

language: php 
php: 
    - "7.1" 
    - "7.0" 
    - "5.6" 

env: 
    - APPLICATION_ENV=test 

services: 
    - docker 

install: 
    - composer install 
    - composer restdocs 
    - composer migrate -- reset --yes 
    - composer build 
    - docker ps -a 
    - docker inspect resttemplate-test-instance 
    - docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' resttemplate-test-instance 
    - sudo chown 82:82 src/sample.db 
    - sudo chown 82:82 src/ 

script: 
    - phpunit 

答えて

0

は、インターネットに掘り、私はこの問題を発見した:https://github.com/travis-ci/travis-ci/issues/6461あり

ここ

は、ビルドのリンクが失敗しています「スリープ15」を追加することによって、ドッカーのインスタンスが起動して実行されるのを待つことを提案しています。出来た!

関連する問題