gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:01:25 27 4
gpt4 key购买 nike

我正在使用 gitlab-ci-multirunner 9.3.0 和 GitLab Community Edition 9.3.5

当我在我的本地虚拟盒子环境中运行我的 php-unit 测试时,总测试 (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 分钟。

关于php - Gitlab Ci 使用 docker 和 mysql 服务缓慢构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com