ArgoCD使用SHA短标记作为Docker标记是为了确保最终生成的容器镜像内容是与Git仓库中的代码相对应的。但是,这样的标记方式会让容器镜像的版本号变得难以记忆和管理,也不便于在部署时进行版本控制。
为了解决这个问题,我们可以通过在ArgoCD的应用程序清单文件中指定Docker镜像的版本标记,来避免使用SHA短标记作为Docker标记。如下所示:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app spec: project: my-app source: repoURL: https://github.com/my-org/my-repo.git path: . targetRevision: HEAD destination: server: https://kubernetes.default.svc namespace: my-namespace syncPolicy: automated: prune: true selfHeal: true syncOptions: - Validate=true - Pruning=true selfHeal: enabled: true hooks: sync: - name: tag-image manifest: spec: containers: - name: my-container image: my-registry/my-repo/my-image:latest imagePullPolicy: Always args: ["echo", "Container is ready."] when: SyncHookPhase.PostSync
在上述代码样例中,我们指定了Docker镜像的版本标记为”:latest”,以替代SHA短标记的使用。这在实际部署应用程序时,非常方便进行版本控制,并且易于记忆和管理。