【问题标题】:How to add php-amqp in CircleCI config.yml?如何在 CircleCI config.yml 中添加 php-amqp?
【发布时间】:2019-03-11 13:15:41
【问题描述】:
我尝试在我的 config.yml 中添加以下命令:
docker-php-ext-install amqp
但 CircleCI 说:
错误:/usr/src/php/ext/amqp 不存在
这是我的完整 config.yml 文件:
# PHP CircleCI 2.0 配置文件
#
# 查看 https://circleci.com/docs/2.0/language-php/ 了解更多详情
#
版本:2
工作:
建造:
码头工人:
# 在这里指定你想要的版本
- 图片:circleci/php:7.1-浏览器
# 如有必要,在此处指定服务依赖项
# CircleCI 维护一个预建图像库 4
# 记录在 https://circleci.com/docs/2.0/circleci-images/
# - 图片:circleci/mysql:9.4
工作目录:~/repo
# 分支:
# 仅限:大师
脚步:
- 退房
# 下载并缓存依赖
- 恢复缓存:
键:
- v1-dependencies-{{校验和“composer.json”}}
# 如果没有找到完全匹配,则回退到使用最新的缓存
- v1-依赖项-
- 运行:sudo apt-get install -y libpng-dev libfreetype6-dev libjpeg-dev
- 跑步:
名称:安装 PHP 扩展
命令:sudo docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir && sudo docker-php-ext-install gd && sudo docker -php-ext-安装 amqp
- 运行:composer install -n --prefer-dist
- 保存缓存:
路径:
- 。/小贩
键:v1-dependencies-{{校验和“composer.json”}}
- 运行:mkdir var/data
# 运行测试!
- 运行:./vendor/bin/simple-phpunit --log-junit ~/phpunit/junit.xml
- store_test_results:
路径:~/phpunit
- store_artifacts:
路径:~/phpunit
工作流程:
版本:2
构建测试:
工作:
- 建造:
过滤器:
分支机构:
唯一:大师
【问题讨论】:
标签:
php
circleci
php-amqp
【解决方案1】:
我解决了这个问题:
- run:
name: Install amqp extention
command: curl -L -o /tmp/amqp.tar.gz https://pecl.php.net/get/amqp-1.9.3.tgz && tar xfz /tmp/amqp.tar.gz && rm -r /tmp/amqp.tar.gz && sudo mkdir -p /usr/src/php/ext/amqp && sudo mv amqp-1.9.3 /usr/src/php/ext/amqp && cd /usr/src/php/ext/amqp/amqp-1.9.3 && sudo phpize && sudo ./configure --with-amqp && sudo make && sudo make install && sudo cp -a /usr/src/php/ext/amqp/amqp-1.9.3/. /usr/src/php/ext/amqp/ && sudo docker-php-ext-install amqp
Symfony 4 项目的完整配置:
# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/php:7.1-browsers
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images 4
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mysql:9.4
working_directory: ~/repo
# branches:
# only: master
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: Install pakaces
command: sudo apt-get install -y libpng-dev libfreetype6-dev libjpeg-dev librabbitmq-dev
- run:
name: Install PHP Extensions
command: sudo docker-php-ext-configure gd --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir && sudo docker-php-ext-install gd
- run:
name: Install amqp extention
command: curl -L -o /tmp/amqp.tar.gz https://pecl.php.net/get/amqp-1.9.3.tgz && tar xfz /tmp/amqp.tar.gz && rm -r /tmp/amqp.tar.gz && sudo mkdir -p /usr/src/php/ext/amqp && sudo mv amqp-1.9.3 /usr/src/php/ext/amqp && cd /usr/src/php/ext/amqp/amqp-1.9.3 && sudo phpize && sudo ./configure --with-amqp && sudo make && sudo make install && sudo cp -a /usr/src/php/ext/amqp/amqp-1.9.3/. /usr/src/php/ext/amqp/ && sudo docker-php-ext-install amqp
# && sudo make && sudo make install && sudo docker-php-ext-install amqp
- run: composer install -n --prefer-dist
- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}
- run: mkdir var/data
# run tests!
- run: ./vendor/bin/simple-phpunit --log-junit ~/phpunit/junit.xml
- store_test_results:
path: ~/phpunit
- store_artifacts:
path: ~/phpunit
workflows:
version: 2
build_tests:
jobs:
- build:
filters:
branches:
only: master