在 gitlab ci 中对 docker 中的哨兵 cli 进行身份验证



我想在我的 docker 映像中像这样运行 sentry-cli:

sentry-frontend:
stage: sentry
services:
- docker:18-dind
before_script:
- docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" registry.xxx.xx
script:
- export SENTRY_AUTH_TOKEN=xxxxxxxxxxxxxxxxxx
- export IMAGE=$CI_REGISTRY_IMAGE/frontend-builder:$CI_COMMIT_REF_NAME
- export RELEASE_VERSION=$CI_COMMIT_REF_NAME
- docker pull getsentry/sentry-cli
- docker run --rm -v $(pwd):/work getsentry/sentry-cli releases -o org -p frontend new $RELEASE_VERSION
tags:
- dind

但是,作业失败,因为

error: API request failed caused by: sentry reported an error: Authentication credentials were not provided. (http status: 401)

我试过了:

- docker run --rm -v $(pwd):/work getsentry/sentry-cli --auth-token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

但是在那之后,我收到的消息与我运行时的消息相同

docker run --rm -v $(pwd):/work sentry-cli --help

之后它会失败,就好像命令不正确一样。我似乎也找不到任何关于如何正确做到这一点的信息。如何在该映像中提供凭据?

如果要将SENTRY_AUTH_TOKEN环境变量传递给容器,可以像这样调整docker run命令:

docker run --rm -v "$PWD:/work" -e SENTRY_AUTH_TOKEN="$SENTRY_AUTH_TOKEN" getsentry/sentry-cli releases -o org -p frontend new $RELEASE_VERSION

或更简洁:

docker run --rm -v "$PWD:/work" -e SENTRY_AUTH_TOKEN getsentry/sentry-cli releases -o org -p frontend new $RELEASE_VERSION

(但请注意,如果dockersudo docker的别名,则后一个版本将不起作用(

相关文档页面是: docs.docker.com/engine/reference/commandline/run/

顺便说一句,请注意,-v "$PWD:/work"-v "$(pwd):/work"更有效(旋转过程少一个(。

相关内容

  • 没有找到相关文章

最新更新