在 gitlab ci 中验证 docker 中的 sentry-cli
Authenticate sentry-cli inside docker in gitlab ci
我想 运行 在我的 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
然后它失败了,就好像命令不是 correct.I 似乎也找不到关于如何正确执行该命令的任何信息。如何在该图像中提供凭据?
如果您想将 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
(但请注意,如果 docker
是 sudo docker
的别名,则后一个版本将不起作用)
相关文档页面为:
docs.docker.com/engine/reference/commandline/run/
顺便说一句,请注意 -v "$PWD:/work"
比 -v "$(pwd):/work"
更有效(旋转过程少一个)。
我想 运行 在我的 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
然后它失败了,就好像命令不是 correct.I 似乎也找不到关于如何正确执行该命令的任何信息。如何在该图像中提供凭据?
如果您想将 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
(但请注意,如果 docker
是 sudo docker
的别名,则后一个版本将不起作用)
相关文档页面为: docs.docker.com/engine/reference/commandline/run/
顺便说一句,请注意 -v "$PWD:/work"
比 -v "$(pwd):/work"
更有效(旋转过程少一个)。