Gitlab Runner卡在docker登录上

3
我通过 HelmChart 在我的 Kubernetes 集群上安装了 GitLab runner。
在使用 Helm 安装时,我使用了配置文件 values.yaml
但是我的 Runner 每次在执行 docker login 命令时都会卡住, 而没有 docker login 命令工作得好。
我不知道出了什么问题 :( 任何帮助都将不胜感激! 错误: write tcp 10.244.0.44:50882->188.72.88.34:443: use of closed network connection

enter image description here

.gitlab-ci.yaml 文件

build docker image:
  stage: build
  image: docker:latest
  services:
    - name: docker:dind
      entrypoint: ["env", "-u", "DOCKER_HOST"]
      command: ["dockerd-entrypoint.sh"]
  variables:
    DOCKER_HOST: tcp://localhost:2375/
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""
  before_script:
     - mkdir -p $HOME/.docker
     - echo passwd| docker login -u user https://registry.labs.com --password-stdin
     
  script:
    - docker images
    - docker ps
    - docker pull registry.labs.com/jappweek:a_zh
    - docker build -t "$CI_REGISTRY"/"$CI_REGISTRY_IMAGE":1.8 .  
    - docker push "$CI_REGISTRY"/"$CI_REGISTRY_IMAGE":1.8
   
  tags:
  - k8s

values.yaml文件

image:
  registry: registry.gitlab.com
  #image: gitlab/gitlab-runner:v13.0.0
  image: gitlab-org/gitlab-runner
  # tag: alpine-v11.6.0


imagePullPolicy: IfNotPresent


gitlabUrl: https://gitlab.somebars.com


runnerRegistrationToken: "GR1348941a7jJ4WF7999yxsya9Arsd929g"


terminationGracePeriodSeconds: 3600

#
concurrent: 10


checkInterval: 30


sessionServer:
  enabled: false
 
## For RBAC support:
rbac:
  create: true

 
  rules: 
   - resources: ["configmaps", "pods", "pods/attach", "secrets", "services"]
     verbs: ["get", "list", "watch", "create", "patch", "update", "delete"]
   - apiGroups: [""]
     resources: ["pods/exec"]
     verbs: ["create", "patch", "delete"]


  clusterWideAccess: false

 
  podSecurityPolicy:
    enabled: false
    resourceNames:
    - gitlab-runner

  
metrics:
  enabled: false

  
  portName: metrics

 
  port: 9252

 
  serviceMonitor:
    enabled: false

  
service:
  enabled: false

 
  
  type: ClusterIP

  
runners:
 
  config: |
    [[runners]]
      [runners.kubernetes]
        namespace = "{{.Release.Namespace}}"
        image = "ubuntu:16.04"


  privileged: true

  cache: {}
    

  builds: {}
  
  services: {}
 
  helpers: {}
  
 
 
securityContext:
  allowPrivilegeEscalation: false
  readOnlyRootFilesystem: false
  runAsNonRoot: true
  privileged: false
  capabilities:
    drop: ["ALL"]


podSecurityContext:
  runAsUser: 100
  # runAsGroup: 65533
  fsGroup: 65533
 
resources: {}
 
affinity: {}


nodeSelector: {}
 
tolerations: []

hostAliases: []
 
podAnnotations: {}
  
podLabels: {}
  
priorityClassName: ""


secrets: []
 
configMaps: {}


volumeMounts: []

volumes: []
1个回答

3
我使用导入主机机器中存储认证令牌的$HOME/.docker/config.json文件绕过了docker登录,以便在Gitlab Ci中使用。
 before_script:
     - mkdir -p $HOME/.docker
     - echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json

$DOCKER_AUTH_CONFIG$HOME/.docker/config.json

就这样,无需docker login


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接