【问题标题】:Can I use php deployer for CI/CD in Laravel?我可以在 Laravel 中使用 php deployer 进行 CI/CD 吗?
【发布时间】:2020-08-16 20:19:33
【问题描述】:

我正在尝试使用 Gitlab CI/CD 并在生产服务器上运行测试和部署代码最终提出以下.gitlab.ci.yml

生产服务器是一个简单的 Ubuntu 服务器

这是一种不好的做法,我该如何改进?

stages:
  - testing
  - deploying

image: php:latest

services:
  - mysql:latest

variables:
  MYSQL_DATABASE: project_name
  MYSQL_ROOT_PASSWORD: secret

cache:
  paths:
    - vendor/
    - node_modules/

before_script:
  - apt-get update -yqq
  - apt-get install gnupg -yqq
  - curl -sL https://deb.nodesource.com/setup_8.x | bash -
  - apt-get install git nodejs libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev libonig-dev libzip-dev -yqq
  - docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache
  - pecl install xdebug
  - docker-php-ext-enable xdebug
  - curl -sS https://getcomposer.org/installer | php
  - php composer.phar install

  - cp .env.testing .env

  - php artisan key:generate
  - php artisan config:cache
  - php artisan migrate
  - php artisan db:seed
  - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

test:
  stage: testing
  script:
    - php vendor/bin/phpunit --coverage-text --colors=never
deploy:
  stage: deploying
  script:
    - php artisan deploy

【问题讨论】:

    标签: php laravel continuous-integration devops continuous-deployment


    【解决方案1】:

    1) 考虑基于php:latest 构建您的自定义 docker 镜像,该镜像将包含内部所有必需的依赖项 (git nodejs ...),并使用您的自定义镜像进行构建。每次构建都会为您节省一些时间,并且您会变得更干净.gitlab-ci.yml

    (P.S. 你甚至可以将它托管在 GitLab Container Registry 中)

    2) 不建议使用latest 标签,因为更新后,即使您个人没有更改任何内容,您的构建也可能开始失败

    【讨论】:

      【解决方案2】:

      我认为这不是一个坏习惯。但您可以使用 jenkin

      等高级工具

      https://www.jenkins.io

      【讨论】:

        猜你喜欢
        • 2021-02-16
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 2012-02-24
        • 1970-01-01
        • 2022-06-15
        • 2021-08-09
        • 2019-04-09
        相关资源
        最近更新 更多