У меня есть следующий конвейер:
# .gitlab-ci.yml
stages:
- build
- push
build:
stage: build
services:
- docker:dind
image: docker:latest
script:
# Build the Docker image
- docker build -t myfe:$CI_COMMIT_SHA .
push:
stage: push
image: bitnami/azure-cli
script:
# - echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin
- echo $ACR_CLIENT_ID | docker login mycr.azurecr.io --username $ACR_CLIENT_ID --password-stdin
# Push the Docker image to the ACR
- docker push myfe:$CI_COMMIT_SHA
only:
- main
# before_script:
# - echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
variables:
DOCKERHUB_USERNAME: $DOCKERHUB_USERNAME
DOCKERHUB_PASSWORD: $DOCKERHUB_PASSWORD
Это приводит к следующей ошибке:
Using docker image sha256:373... for bitnami/azure-cli with digest bitnami/azure-cli@sha256:9128... ...
ERROR: 'sh' is misspelled or not recognized by the system.
Examples from AI knowledge base:
https://aka.ms/cli_ref
Read more about the command in reference docs
Любая идея, что это может означать?
Bitnami/azure-cli имеет точку входа az
, поэтому ваш скрипт выполняется с параметрами az.
Чтобы решить эту проблему, вам нужно переопределить точку входа, используя: entrypoint: [""]
в вашем gitlab-ci.yml.
Для получения дополнительной информации проверьте: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#override-the-entrypoint-of-an-image
Если вы хотите использовать образ Azure CLI для этого файла .gitlab-ci.yml, вместо этого следует использовать официальный образ Microsoft:
image: mcr.microsoft.com/azure-cli
Работает как шарм!