我们正在为CI/CD使用Gitlab。我将包括我们正在使用的脚本gitlab ci-cd文件
服务:-码头工人:2011年3月19日before_script之前:-apk更新&&apk添加bash-apk更新&&apk添加gettext工作流程:规则:-如果:$CI_COMMIT_BRANCH==$CI_DEFAULT_BRANCH | |$CI_CCOMMIT_BRAN CH==“开发人员”| |$CID_COMMIT_BRANCH==“阶段”| |($CI_COMMIT_BRANCH=~(/^([A-Z]([0-9][-_])?)?弹簧(([-_][A-Z][0-9])?)+/i) )时间:始终-如果:$CI_COMMIT_BRANCH!=$CI_DEFAULT_BRANCH||$CI_COMMIT_BRANCH!=“开发人员”||$CI_COMMIT_BRANCH!=“阶段”||($CI_COMMIT_BRANCH!~(/^([A-Z]([0-9][-_])?)?弹簧(([-_][A-Z][0-9])?)+/i) )时间:从不阶段:-建造-发布-部署隐藏物:路径:-.m2/仓库-目标build_jar:图片:maven:3.8.3-jdk-11阶段:构建脚本:-mvn clean安装包-DskipTests=true人工产品:路径:-target/*.jardocker_build_dev:阶段:发布图片:docker:19.03.11服务:-码头工人:19.03.11-dind变量:IMAGE_TAG:$CI_REGISTRY-IMAGE:$CI_COMMIT_SHORT_SHA脚本:-docker登录-u$CI_REGISTRY_USER-p$CI_REGISTRY_PASSWORD$CI_RECISTRY-docker构建-t$IMAGE_TAG。-docker推$IMAGE_TAG仅限:-/^([A-Z]([0-9][-_])?)?弹簧(([-_][A-Z][0-9])?)+/我-开发人员码头建造阶段:阶段:发布图片:docker:19.03.11服务:-码头工人:19.03.11-dind变量:IMAGE_TAG:$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA脚本:-docker登录-u$CI_REGISTRY_USER-p$CI_REGISTRY_PASSWORD$CI_RECISTRY-docker构建-t$IMAGE_TAG。-docker推$IMAGE_TAG仅限:-阶段部署_开发:阶段:部署图片:stellacenter/aws-helm-kubectl变量:ENV_VAR_NAME:开发before_script之前:-aws配置集aws_access_key_id${DEV_aws_access_key_id}-aws配置集aws_secret_access_key${DEV_aws_secret_access_key}-aws配置集合区域${DEV_aws_DEFAULT_region}脚本:-sed-i“s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g”患者服务.yml-mkdir-p$主页/.kube-cp$KUBE_CONFIG_DEV$HOME/.KUBE/CONFIG-chown$(id-u):$(id-g)$HOME/.kube/config-export KUBECONFIG=$HOME/.kube/config-cat patient service.yml|envsubst|kubectl apply-f patient-service.yml-n${KUBE_NAMESPACE_DEV}仅限:-/^([A-Z]([0-9][-_])?)?弹簧(([-_][A-Z][0-9])?)+/我-开发人员部署阶段(_S):阶段:部署图片:stellacenter/aws-helm-kubectl变量:ENV_VAR_NAME:阶段before_script之前:-aws配置集aws_access_key_id${DEV_aws_access_key_id}-aws配置集aws_secret_access_key${DEV_aws_secret_access_key}-aws配置集合区域${DEV_aws_DEFAULT_region}脚本:-sed-i“s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g”患者服务.yml-mkdir-p$主页/.kube-cp$KUBE_CONFIG_STAGE$HOME/.KUBE/CONFIG-chown$(id-u):$(id-g)$HOME/.kube/config-export KUBECONFIG=$HOME/.kube/config-cat patient service.yml|envsubst|kubectl apply-f patient-service.yml-n${KUBE_NAMESPACE_STAGE}仅限:-阶段
根据脚本,我们只是合并了脚本,以便在部署时不面临阶段和开发的冲突/冲突。以前,我们有每个环境(阶段和开发人员)的每个docker文件。现在我也想合并dockerfile,我合并了,但dockerfiles没有抓取。在Kubernetes中发生冲突(管道成功后显示警告)。我不知道如何清除Kubernetes的警告。我将附上我合并的docker文件。
来自maven:3.8.3-jdk-11 AS maven_BUILD复制pom.xml/build/复制src/build/src/工作目录/构建/RUN mvn clean安装包-DskipTests=true来自openjdk:11ARG环境名称工作目录/应用程序副本--来自=MAVEN_BUILD/BUILD/target/patient-service-*.jar/app/patient-service.jarENV端口8094ENV ENV_var_name=$环境名称公开$PORTENTRYPOINT[“java”,“-Dspring.profiles.active=$env_var_name”,“-jar”,“/app/patient-service.jar”]
我们以前用过的最后一行,
ENTRYPOINT[“java”,“-Dspring.profiles.active=development”,“-jar”,“/app/patient-service.jar”]-用于开发人员dockerfileENTRYPOINT[“java”,“-Dspring.profiles.active=stage”,“-jar”,“/app/pientity-service.jar”]-用于stage dockerfile
当时,它运行良好,我在Kubernetes上没有遇到任何问题。我只需要添加环境变量来处理开发或阶段。你可以在docker构建后检查我的脚本。仅添加变量后,我们开始面临冲突。请帮我解决这个问题。提前谢谢。
Yaml文件
api版本:apps/v1种类:部署元数据:姓名:patient-app标签:应用程序:patient-app规格:副本:1选择器:匹配标签:应用程序:患者应用程序模板:元数据:标签:应用程序:patient-app规格:容器:-姓名:patient-app图片:registry.gitlab.com/stella-center/backend-services/patient-service:<VERSION>imagePullPolicy:始终端口:-集装箱港口:8094imagePullSecrets:-名称:gitlab-registry-token-auth---api版本:v1种类:服务元数据:名称:患者服务规格:类型:节点端口选择器:应用程序:patient-app端口:-端口:8094目标端口:8094