ci时报错certificate is valid for ingress.local

  • Choerodon平台版本:0.7.0

  • 运行环境(如localhost或k8s):k8s

  • 遇到问题时的前置条件:
    结束分支时,执行docker_build失败

  • 问题描述:

    求教应该怎么解决,谢谢!

@notsaltfish 这是你的证书无效。

这种自定义的域名还是在docker的配置文件中添加insecure-registry 比较好
:grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning::grinning:

@404 :+1::+1::+1:

如果配置了insecure-registry, 那docker是需要重启的吧,如果重启的话,猪齿鱼所有的服务会自动恢复吗?

会自动恢复的

你好,我添加了insecure-registry, 重启docker之后,gitlab再次docker_build 报另外一个错误,请问这个是怎么解决?谢谢!

检查下你的 ingress是否配置了 http://registry.example.choerodon.io 这个域名哦, 注意是 http不是https的。

我直接从从本地浏览器输入url http://registry.example.choerodon.io 是可以访问的

后边 加 /v2/

这是加上v2的信息

runner是否部署在单独的环境中呢?

不是,runner 运行在docker里面

请粘贴一下你的 .gitlab-ci.yml 文件内容 谢谢

这是我的.gitlab.ci文件
image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/cibase:0.5.0

stages:
  - mvn-package
  - docker-build

maven-test-branches:
  stage: mvn-package
  script:
    - git_merge develop
    - mvn package -U -DskipTests=false
  only:
    - branches
  except:
    - master
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

maven-test-build:
  stage: mvn-package
  script:
    - update_pom_version
    - mvn package -U -DskipTests=false
#    - mvn --batch-mode verify sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.analysis.serviceGroup=$GROUP_NAME -Dsonar.analysis.commitId=$CI_COMMIT_SHA
    - mkdir -p /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
    - cp target/app.jar /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}/app.jar
  only:
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

docker-build:
  stage: docker-build
  script:
    - docker_build
    - chart_build
  only:
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

.auto_devops: &auto_devops |
    curl -o .auto_devops.sh \
        "${CHOERODON_URL}/devops/ci?token=${Token}&type=microservice"
    if [ $? -ne 0 ];then
      cat .auto_devops.sh
      exit 1
    fi
    source .auto_devops.sh
    function docker_build(){
        cp /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}/app.jar ${1:-"src/main/docker"}/app.jar || true
        docker login -u ${DOCKER_USER} -p ${DOCKER_PWD} ${DOCKER_REGISTRY}
        docker build --pull -t ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} ${1:-"src/main/docker"}
        docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
        rm -rf /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
    }

before_script:
  - *auto_devops

改成这样试一试

image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/cibase:0.5.0
stages:
  - mvn-package
  - docker-build

maven-test-branches:
  stage: mvn-package
  script:
    - git_merge develop
    - mvn package -U -DskipTests=false
  only:
    - branches
  except:
    - master
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

maven-test-build:
  stage: mvn-package
  script:
    - update_pom_version
    - mvn package -U -DskipTests=false
#    - mvn --batch-mode verify sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.analysis.serviceGroup=$GROUP_NAME -Dsonar.analysis.commitId=$CI_COMMIT_SHA
    - mkdir -p /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
    - cp target/app.jar /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}/app.jar
  only:
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

docker-build:
  stage: docker-build
  script:
    - docker_build
    - chart_build
  only:
    - tags
    - develop
    - /^release-.*$/
    - /^hotfix-.*$/

.auto_devops: &auto_devops |
    curl -o .auto_devops.sh \
        "${CHOERODON_URL}/devops/ci?token=${Token}&type=microservice"
    if [ $? -ne 0 ];then
      cat .auto_devops.sh
      exit 1
    fi
    source .auto_devops.sh
    function docker_build(){
        cp /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}/app.jar ${1:-"src/main/docker"}/app.jar || true
        docker login -u ${DOCKER_USER} -p ${DOCKER_PWD} https://${DOCKER_REGISTRY}
        docker build --pull -t ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} ${1:-"src/main/docker"}
        docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
        rm -rf /cache/${CI_PROJECT_NAME}-${CI_PROJECT_ID}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
    }

before_script:
  - *auto_devops

好的,我试试

还是报同样的错

请在服务器上执行以下命令尝试登陆,看看提示信息

docker login https://registry.example.choerodon.io

是同样的结果,下面是输出
[root@node1 ~]# docker login https://registry.example.choerodon.io
Username: admin
Password:
Error response from daemon: Get http://registry.example.choerodon.io/v2/: error parsing HTTP 404 response body: invalid character ‘d’ looking for beginning of value: “default backend - 404”
[root@node1 ~]#