Поддержка 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»