0

I am trying to build a multiarch image on GitLab CI with buildx and when I tried to run docker inside my pod I receive this error:

Failed to initialize: unable to resolve docker endpoint: context "/builds/infrastructure/apps/deployer": context not found: open /root/.docker/contexts/meta/726f8c8b439712b59d12acacc425f6720c7c4fd123a6503aa6a022b79cd18827/meta.json: no such file or directory

gitlab-ci.yml

build:
  image:
    name: ubuntu:latest
    entrypoint: [""]
  variables:
    ECR_REGISTRY: <path to ECR>
    DOCKER_CONTEXT: $CI_PROJECT_DIR/apps/deployer
  script:
    - apt-get update -y
    - apt-get upgrade -y
    - apt-get install ca-certificates curl gnupg lsb-release -y
    - mkdir -m 0755 -p /etc/apt/keyrings
    - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    - apt-get update -y
    - apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    - dockerd --log-level=error & echo "Waiting dockerd start..." && until docker ps; do sleep 1; done
    - docker buildx create \
      --bootstrap \
      --name=test-multiarch-deployer \
      --driver=kubernetes \
      --platform=linux/amd64 \
      --node=builder-amd64 \
      '--driver-opt=namespace=test,requests.cpu=1,requests.memory=1Gi,"nodeselector=amd64=true","tolerations=key=dedicated,value=test_amd64,effect=NoSchedule",rootless=true,qemu.install=false'
    - docker buildx create \
      --append \
      --bootstrap \
      --name=test-multiarch-deployer \
      --driver=kubernetes \
      --platform=linux/arm64 \
      --node=builder-arm64 \
      '--driver-opt=namespace=test,requests.cpu=1,requests.memory=1Gi,"nodeselector=arm64=true","tolerations=key=dedicated,value=test_arm64,effect=NoSchedule",rootless=true,qemu.install=false'
    - docker buildx ls
    - docker buildx build \
      --builder=test-multiarch-deployer \
      --platform=linux/amd64,linux/arm64 \
      --file $DOCKER_CONTEXT/Dockerfile \
      --tag $ECR_REGISTRY:$CI_COMMIT_SHA \
      --push $DOCKER_CONTEXT

I tried autenticate on my ECR and receive a error similar:

aws ecr get-login-password --region region | docker login --username AWS --password-stdin id.dkr.ecr.region.amazonaws.com
Failed to initialize: unable to resolve docker endpoint: context "/builds/infrastructure/apps/deployer": context not found: open /root/.docker/contexts/meta/726f8c8b439712b59d12acacc425f6720c7c4fd123a6503aa6a022b79cd18827/meta.json: no such file or directory
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
BrokenPipeError: [Errno 32] Broken pipe
root@runner-cxcqt1ch-project-18134363-concurrent-09ljdh:/# exit
exit
command terminated with exit code 1

0 Answers0