php-GitlabCi使用docker和mysql服务缓慢构建

前端之家收集整理的这篇文章主要介绍了php-GitlabCi使用docker和mysql服务缓慢构建 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用gitlab-ci-multirunner 9.3.0和GitLab社区版9.3.5

当我在本地虚拟盒环境中运行PHP单元测试时,总测试(30)大约需要:

Time: 5 minutes,Memory: 96.00MB

在我的gitlab主机上运行相同的测试,总共需要

Time: 41.68 minutes,Memory: 97.75MB

这些测试需要MysqL并在每个测试上执行数据库创建和夹具加载.

我的DockerFile:

FROM tetraweb/PHP:5.6

# Install additional packages
RUN apt-get clean && apt-get -qq update
RUN apt-get -qq upgrade -y
RUN apt-get install -qq -y apt-utils
RUN apt-get install -qq -y MysqL-client libmagickwand-dev libgeoip-dev -y --no-install-recommends
RUN pecl install imagick apcu-4.0.11 geoip
RUN docker-PHP-ext-enable exif gd gettext intl mcrypt MysqL MysqLi opcache pdo_MysqL zip memcache apcu imagick geoi

我的gitlab-ci.yml:

variables:
  TIMEZONE: Europe/Berlin
  MysqL_DATABASE: test
  MysqL_ROOT_PASSWORD: test-root
  MysqL_USER: test
  MysqL_PASSWORD: asecurething
  SYMFONY_ENV: "test"

stages:
  - test
  - deploy

test:
  image: test-image-PHP:5.6
  services:
    - mariadb:latest
  stage: test
  only:
    - branches
  except:
    - master
  script:
      - export COMPOSER_CACHE_DIR=x/cache/composer
      - SYMFONY_ENV=test composer install --no-progress --no-interaction
      - chmod +x bin/console
      - PHP vendor/PHPunit/PHPunit/PHPunit --coverage-text --colors=never

我真的认为那是造成巨大差异的MysqL服务故障.
什么是提高我的PHPunit测试性能的最佳方法

最佳答案
我正在使用gitlab-ci 10.3.0,其中在服务器上的测试花费了40分钟,而在Mac上的测试花费了2分钟.除了Mac使用SSD的硬盘外,服务器的性能均超出Mac.

不知道是否合适的解决方案,但我修改了跑步者的配置以匹配Docker Executor – Mounting a directory in RAM中的设置.

我在config.toml中添加了以下内容

[runners.docker]
# For the main container
[runners.docker.tmpfs]
    "/var/lib/MysqL" = "rw,noexec"

# For services
[runners.docker.services_tmpfs]
    "/var/lib/MysqL" = "rw,noexec"

我还设法将服务器上的构建时间减少到2分钟.

猜你在找的Docker相关文章