php - Jenkins中的 Composer 错误

标签 php docker jenkins composer-php

我一直在尝试为PHP设置构建系统,并具有以下Jenkins管道。

pipeline {
    agent { docker { image 'my-custom-image' } }
    stages {
        stage('Build') {
            steps {
                sh 'composer config --global --auth http-basic.repo.packagist.com token mytokencode'
            }
        }
    }
}

这是在拉取docker镜像,但是当执行composer命令时,它会引发以下错误:
Cannot create cache directory /.composer/cache/repo/https---repo.packagist.com-domain/, or directory is not writable. Proceeding without cache
Cannot create cache directory /.composer/cache/files/, or directory is not writable. Proceeding without cache


  [ErrorException]                                                                         
  touch(): Unable to create file /.composer/config.json because No such file or directory  

并且构建失败。我怎样才能解决这个问题 ?

最佳答案

您可以将COMPOSER_HOME环境变量设置为实际目录,Composer会将其保存在该目录中。就像是:

pipeline {
    agent { docker { image 'my-custom-image' } }
    stages {
        stage('Build') {
            steps {
                sh 'COMPOSER_HOME=$(pwd) composer config --global --auth http-basic.repo.packagist.com token mytokencode'
            }
        }
    }
}

关于php - Jenkins中的 Composer 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50348312/

相关文章:

php - 仅显示 MySQL future 的数据库记录

php - 推特 API 1.1 - 返回 NULL

windows - RabbitMQ 控制台返回 431

Jenkins 管道电子邮件通知与电子邮件中控制台输出的某些部分

java - 如何根据测试结果更改 Jenkins 输出?

php - 如何在我的脚本/自动加载中包含适用于 PHP 的 Google App Engine?

php - 如何使用 PHP 在大文件中查找文本?

php - Docker Compose - 安装带有 MySQLi、MySQLnd 和 PDO 扩展的 php-fpm

windows - 你需要 Docker 内的 OS (Windows) 许可证吗

java - 如何在端口 8000 上启动 Jenkins?