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