heroku Gitlab自动部署Laravel私有存储库编写器安装未读取COMPOSER_AUTH环境变量

xpcnnkqh  于 2023-01-26  发布在  Git
关注(0)|答案(1)|浏览(127)

我有一个laravel应用程序,我尝试使用GitLab autodevops将其部署到Google Kubernetes。当我触发CI管道时,它会启动Herokuish PHP构建和npm安装,然而,一些composer repos是私有的。我知道我需要添加一个名为COMPSER_AUTH的环境变量,它包含auth.json的内容,auth.json包含允许从repos检索的令牌。但由于某些原因,管道总是失败,因为它没有权限检索那些repos。我知道auth.json的内容是正确的,因为我在本地尝试了它,它工作了。我希望有人能帮助我解决这个问题!
下面是composer.json中repo部分的内容

"repositories": {
   "nova" : {
      "type": "composer",
      "url": "https://nova.laravel.com"
   }
}

对于COMPOSER_AUTH变量,内容如下所示

'{
    "gitlab-token":{
        "gitlab.com": "GITLABTOKENHERE"
    },
    "http-basic": {
        "nova.laravel.com": {
            "username": "MY-EMAILI-HERE",
            "password": "MY-NOVA-TOKEN-HERE"
        }
    }
}'

这是我在npm安装x1c 0d1x期间收到的一些错误消息

zdwk9cvp

zdwk9cvp1#

我不知道你是否还存在这个问题,但我自己也遇到了这个问题。这是一个巨大的痛苦,但我刚刚得到了解决。我正在使用Gitlab管道与Dokku,所以听起来我们正在做类似的事情。
在GitLab Project〉Settings〉CI/CD〉Variables中,我创建了一个名为COMPOSER_AUTH的变量。不过它的格式很难弄清楚。我在网上找到的所有例子都不一样,所以需要大量的试验和错误。下面是我所做的一个例子。

Key: COMPOSER_AUTH 

Value: '{"http-basic":{"nova.laravel.com":{"username":"youremail","password":"yourpassword"}}}'

Type: Variable

因此,诀窍是在json的两边加上单引号,然后去掉所有空格,这样就可以在一行中显示所有内容,而不白色。
从那里,我可以使用$COMPSER_AUTH引用Gitlab CI变量,并将其保存到管道中的.env中。

相关问题