我刚接触AKS、ACR和DevOps管道,我正在尝试为我的应用程序设置CI/CD管道,它使用Spring Boot后端和角度前端。下面是我正在使用的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后端的一个。它已成功部署,如下所示。
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前端。我该怎么做呢?如果需要更多细节,请让我知道。
发布于 2021-04-29 06:16:20
您需要为Angular应用程序单独构建docker容器。理想情况下,它应该与SpringBoot应用程序一起部署。您将需要一个新的构建和部署管道,其中可能包含一个单独的清单文件。
有关如何为Angular应用程序构建docker镜像的参考文章:
https://stackoverflow.com/questions/67304968
复制相似问题