程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序?

开发过程中遇到使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序的解决方法建议,希望对你解决使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序有所启发或帮助;

我是 AKS、ACR 和 DevOps 管道的新手,我正在尝试为使用 Spring Boot 后端和 Angular 前端的应用程序设置 CI/CD 管道。 下面是我正在使用的 azure 管道 yaml 文件

# Deploy to Azure Kubernetes service
# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes service
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- master

resources:
- repo: self

variables:

  # Container registry service connection established during pipeline creation
  dockerRegistryserviceConnection: 'c2ed88c0-0d3b-4ea1-b8e0-7cc40c5c81d3'
  imageRepository: 'pvedanabhatlarepoui'
  containerRegistry: 'pkvcontainerregistry.azurecr.io'
  dockerfilePath: '**/Dockerfile'
  tag: '$(Build.buildID)'
  imagePullSecret: 'pkvcontainerregistry2152213e-auth'

  # Agent VM image name
  vmImagename: 'ubuntu-latest'


stages:
- stage: Build
  displayname: Build stage
  jobs:
  - job: Build
    displayname: Build
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Maven@3
      inputs:
        mavenPomfile: 'party_ui_BACkend/pom.xml'
        goals: 'clean verify'
        publishJUnitResults: false
        javaHomeOption: 'JDKVersion'
        mavenVersionoption: 'Default'
        mavenAuthenticateFeed: false
        effectivePomSkip: false
        sonarQubeRunAnalysis: false
    - task: Docker@2
      displayname: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryserviceConnection)
        Tags: |
          $(tag)

    - upload: manifests
      artifact: manifests

- stage: Deploy
  displayname: Deploy stage
  dependsOn: Build

  jobs:
  - deployment: Deploy
    displayname: Deploy
    pool:
      vmImage: $(vmImageName)
    environment: 'pvedanabhatlarepoui-7912.default'
    strategy:
      runOnce:
        deploy:
          steps:
          - task: Kubernetesmanifest@0
            displayname: Create imagePullSecret
            inputs:
              action: createSecret
              secretname: $(imagePullSecret)
              dockerRegistryEndpoint: $(dockerRegistryserviceConnection)

          - task: Kubernetesmanifest@0
            displayname: Deploy to Kubernetes cluster
            inputs:
              action: deploy
              manifests: |
                $(Pipeline.WorkspacE)/manifests/deployment.yml
                $(Pipeline.WorkspacE)/manifests/service.yml
              imagePullSecrets: |
                $(imagePullSecret)
              containers: |
                $(containerRegistry)/$(imageRepository):$(tag)

这里是 deployment.yaml 和 service.yaml

APIVersion: apps/v1 
kind: Deployment    
Metadata:              
  name: springboot-k8s-mssql
spec:                
  SELEctor:         
    matchLabels:
      app: springboot-k8s-mssql
  replicas: 3        
  template:
    Metadata:
      labels:        
        app: springboot-k8s-mssql
    spec:
      containers:
        - name: springboot-k8s-mssql
          image: pkvcontainerregistry.azurecr.io/pvedanabhatlarepoui
          ports:
            - containerPort: 80             
        
---
APIVersion: v1
kind: service
Metadata:
  name: springboot-k8s-mssql
  labels:
    name: springboot-k8s-mssql
spec:
    type: LoadBalancer
    ports:
    - port: 80      
    SELEctor:           
        app: springboot-k8s-mssql
         

如您所见,我在 azure 管道 yaml 中使用了 party_ui_BACkend/pom.xml,而这个 pom 是用于 Spring Boot 后端的 pom。这样就部署成功了,如下图。

name                                   READY   STATUS    RESTARTS   AGE
springboot-k8s-mssql-66876d98c-5rsj9   1/1     Running   0          58m
springboot-k8s-mssql-66876d98c-67xz5   1/1     Running   0          58m
springboot-k8s-mssql-66876d98c-rqzn6   1/1     Running   0          58m

现在我也想在同一个 deployment.yaml 中部署 Angular 前端。我怎样才能做到这一点?如果需要更多详细信息,请告诉我。

解决方法

您需要单独为 Angular 应用程序构建 docker 容器。理想情况下,它应该与 SpringBoot 应用程序一起部署。您将需要一个新的构建和部署管道,其中包含一个可能单独的清单文件。

关于如何为 Angular 应用构建 docker 镜像的参文章:

  • https://dzone.com/articles/how-to-dockerize-angular-app
  • https://developer.okta.com/blog/2020/06/17/angular-docker-spring-boot#create-a-docker-container-for-your-angular-app

大佬总结

以上是大佬教程为你收集整理的使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序全部内容,希望文章能够帮你解决使用 docker 和 azure 容器注册表在 azure kubernetes 中部署 angular 和 sprint 启动应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。