1

我正在尝试设置 GitLab CI 流程,但发现它启动起来非常缓慢。任务可以挂起等待状态几分钟。但主要问题是建设非常缓慢。我们有一个自定义的 PHP docker 镜像(内置一些模块)和应用程序。部署到 CI 最多可能需要 5-10 分钟。

这怎么可能:

  • 尽量减少等待时间?购买企业账号?
  • 加快图像构建和安装?
  • 缓存泊坞窗图像?
  • 从文件和我们的 php7 中加入基本图像?

尽管对版本和时间有一些不必要的检查,但它们不是问题——它们速度很快,但它们提供了有关精确版本和运行时间的信息。

.gitlab-ci.yml

    image: "registry.gitlab.com/project/debianphp7:latest"

    services:
       - mariadb:10.1

    variables:
    #  CI_DEBUG_TRACE: "true"   # hard Gitlab CI debug
      MYSQL_HOST: mariadb
      MYSQL_DATABASE: dbname
      MYSQL_ROOT_PASSWORD: "password"
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      MYSQL_CMD: "mysql --user=root --password=$MYSQL_ROOT_PASSWORD --host=$MYSQL_HOST $MYSQL_DATABASE "

    before_script:
      - apt-get update && apt-get install mysql-client -y
      - echo "Load database fixtures"
      - mysql -V
      - echo $MYSQL_CMD
      - echo "SELECT 'OK', NOW(), VERSION();" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mariadb
      - echo "SELECT 'OK', NOW(), VERSION();" | $MYSQL_CMD
      - (find ./sql/*.sql -type f | while read f; do
             echo "Loading " $f;
             cat $f | $MYSQL_CMD;
         done);

    test:
      script:
        php -d short_open_tag=On src/execute_request_by_cron.php -- request=TestUnitTestRequest

谢谢。

4

1 回答 1

2

我不清楚的是,您是使用 gitlab.com 上的免费托管版本还是 gitlab 的自托管版本。但总的来说,您可以做以下两件事:

首先是完全免费的升级:所有在你的代码中没有改变的东西最好移动到一个预构建的镜像中。例如这一行:

apt-get update && apt-get install mysql-client -y

我会从您的源图像创建一个预安装了 mysql 客户端的图像。无论如何,你需要的所有东西都是免费的,GitHub、Docker Hub 和......

然后假设您使用的是 gitlab.com,您可以为专用跑步者付费,也可以通过激活私人跑步者来自带。

于 2016-12-15T09:03:17.830 回答