Рубрики
Uncategorized

Настройка Bitbucket Tipelines для Laravel

Поддержка Bitbucket имеет хорошую статью, чтобы начать настройку проекта Laravel с помощью своих трубопроводов Fe … Помечено Laravel, Bitbucket, Tipelines, CICD.

Поддержка Bitbucket имеет хорошее Статья Чтобы начать настройку проекта Laravel с помощью функции трубопроводов Но для крупномасштабного проекта Laravel эта статья не завершена.

Multi Stage Builds

Bitbucket Pipelines имеет все неотъемлемые плюсы и минусы поставщики, заблокированной среды. Ограничение памяти является одним из них. Шаг установки композитора никогда не будет работать с этим ограничением. Для этого я перешел в Multi Stage Build. Я создал свое собственное изображение и подтолкнул его к Docker Hub. Dockerfile выглядит так

FROM php:7.2-fpm

RUN apt-get update && apt-get install -y unzip ...
RUN printf 'memory_limit = -1;' > /usr/local/etc/php/php.ini

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN mkdir tests
RUN echo '{                                    \
    "require": {                               \
        "laravel/framework": "7.*",            \
        ...
    },                                         \
    "require-dev": {                           \
        "phpunit/phpunit": "^8",               \
        "squizlabs/php_codesniffer": "3.*",    \
        "phpmd/phpmd": "@stable",              \
                "pdepend/pdepend" : "@stable"  \
    },                                         \
    "autoload-dev": {                          \
        "classmap": [                          \
            "tests"                            \
        ]                                      \
    }                                          \
}' > composer.json
RUN composer install --no-scripts
RUN composer dump-autoload

Теперь в файле Bitbucket-pipelines.yml используйте это пользовательское изображение и несколько других операторов, чтобы выполнить тесты запуска

image: dockerhub_user/base-image:prod

pipelines:
  default:
    - step:
        script:
          - cd $BITBUCKET_CLONE_DIR && ln -s /var/www/html/vendor vendor
          - composer dump-autoload
          - vendor/bin/phpunit tests
          ...

Вы также можете проверить базовое изображение локально, используя следующие команды. Вам нужно скопировать Dockerfile в Папка Project_Root/Pipelines

# build image
docker build -t dockerhub_user/base-image:prod -f pipeline/dockerfile .

# Run image locally with bitbucket memory constraints
docker run -it --memory=4g --memory-swap=4g --memory-swappiness=0 --entrypoint=/bin/bash -v ${PWD}:/build dockerhub_user/base-image:prod
# With volume use -v $(PWD):/build on linux

#push the image to dockerhub
docker login
docker push dockerhub_user/base-image:prod

Оригинал: «https://dev.to/nsaqib/setting-up-bitbucket-pipelines-for-laravel-4c39»