You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins管理的Docker容器内配置Composer拉取JFrog Artifactory包

在Jenkins+Docker环境中实现Composer对JFrog Artifactory的凭证认证

方法1:提前生成auth.json并通过Jenkins凭证挂载到容器

  • 本地先手动生成auth.json文件(就是你本地操作后得到的/home/vagrant/.composer/auth.json),示例内容:
    {
        "http-basic": {
            "example.jfrog.io": {
                "username": "你的JFrog用户名",
                "password": "你的JFrog密码或API密钥"
            }
        }
    }
    
  • 在Jenkins中把这个auth.json文件作为文件凭证存储(也可以把用户名、密码分别存为独立的字符串凭证)。
  • 在Jenkins流水线的Docker步骤中,将凭证挂载到容器内Composer的默认配置目录:
    pipeline {
        agent {
            docker {
                image 'php:7.4-cli'
                args '-v ${JENKINS_HOME}/path/to/your/auth.json:/root/.composer/auth.json'
            }
        }
        stages {
            stage('Install Dependencies') {
                steps {
                    sh 'composer install --no-interaction'
                }
            }
        }
    }
    
    如果用分开的用户名/密码凭证,也可以在流水线中动态生成auth.json:
    pipeline {
        agent { docker { image 'php:7.4-cli' } }
        environment {
            JFROG_USER = credentials('jfrog-username')
            JFROG_PASS = credentials('jfrog-password')
        }
        stages {
            stage('Setup Auth') {
                steps {
                    sh '''
                        mkdir -p /root/.composer
                        cat > /root/.composer/auth.json << EOF
                        {
                            "http-basic": {
                                "example.jfrog.io": {
                                    "username": "$JFROG_USER",
                                    "password": "$JFROG_PASS"
                                }
                            }
                        }
                        EOF
                    '''
                }
            }
            stage('Install Dependencies') {
                steps {
                    sh 'composer install --no-interaction'
                }
            }
        }
    }
    

方法2:直接通过Composer命令行参数传入凭证

不需要生成auth.json,直接在执行composer install时通过命令配置认证信息:

pipeline {
    agent { docker { image 'php:7.4-cli' } }
    environment {
        JFROG_USER = credentials('jfrog-username')
        JFROG_PASS = credentials('jfrog-password')
    }
    stages {
        stage('Install Dependencies') {
            steps {
                sh 'composer config http-basic.example.jfrog.io $JFROG_USER $JFROG_PASS && composer install --no-interaction'
            }
        }
    }
}

这条命令会临时在容器内的Composer配置中添加认证信息,执行完后如果不需要保留,可追加命令删除配置:composer config --unset http-basic.example.jfrog.io

方法3:在Docker镜像中预配置认证信息(不推荐,除非是严格私有镜像)

如果是自己构建基础PHP镜像,可以在Dockerfile中提前写入auth.json:

FROM php:7.4-cli
RUN mkdir -p /root/.composer
COPY auth.json /root/.composer/auth.json
RUN composer install --no-interaction

此方法存在安全风险,凭证会硬编码到镜像中,仅适用于完全私有且仅可信人员可访问的镜像场景。


内容的提问来源于stack exchange,提问作者Avinash Dalvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:21:30