【问题标题】:Docker container created inside the travis-ci does not serve NGINX port for test在 travis-ci 中创建的 Docker 容器不提供 NGINX 端口进行测试
【发布时间】:2017-11-23 00:31:54
【问题描述】:

我正在使用 docker 映像对我的项目进行功能测试。此映像基于 alpine,并由 supervisord 运行 nginx 和 php-fpm 服务,我的功能测试对这个 docker 实例进行了休息调用。

基本上是 .travis.yml:

  • 构建映像
  • 启动容器
  • 调用PHPUnit进行测试;

图像创建良好,容器已启动。我添加了一些调试信息来验证这一点:

>> 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

【问题讨论】:

    标签: docker travis-ci


    【解决方案1】:

    上网查到这个问题:https://github.com/travis-ci/travis-ci/issues/6461

    建议通过添加“sleep 15”来等待 docker 实例启动并运行。成功了!

    【讨论】:

    • 很好,我在其他地方找到了解决方案 - 但后来也找到了您的帖子。无论如何,谢谢 - 它有效:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2020-06-15
    • 2016-05-09
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多