Drone+.Net 7 实践

发布时间 2023-04-16 16:57:04作者: SpringCore
1.Dockerfile
点击查看代码
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY /publish .
ENTRYPOINT ["dotnet", "Coreqi_Api.dll"]
2.[.drone.yml]
点击查看代码
kind: pipeline
type: docker
name: deployment

platform:
  os: linux
  arch: amd64

steps:
  - name: dotnet-build
    image: mcr.microsoft.com/dotnet/sdk:7.0
    volumes:
      - name: dotnet-build
        path: /drone/src/app
      - name: dotnet-nuget
        path: /drone/src/packages
    commands:
      - rm -rf ./app/*
      - cd ./Coreqi_Api
      - dotnet restore --packages /drone/src/packages
      - dotnet build -c Release -o /drone/src/app/build
      - dotnet publish -c Release -o /drone/src/app/publish /p:UseAppHost=false
      - cp ./Dockerfile /drone/src/app
      - echo dotnet build success
  - name: build-docker
    image: plugins/docker
    privileged: true
    settings:
      context: /drone/src/app
      dockerfile: /drone/src/app/Dockerfile
    commands:
      - cd /drone/src/app
      - docker build -t fanqi/coreqi:latest .
      - docker stop coreqi && docker rm coreqi
      - docker run -d -p 10018:80 --name coreqi fanqi/coreqi:latest
    volumes:
      - name: dotnet-build
        path: /drone/src/app
      - name: dockersock
        path: /var/run/docker.sock
volumes:
  - name: dotnet-build
    host:
      path: /mnt/dotnet/app
  - name: dotnet-nuget
    host:
      path: /mnt/dotnet/packages
  - name: dockersock
    host:
      path: /var/run/docker.sock
      
# 可限制哪些分支可以推送自动CICD
trigger:
  branch:
    - main