Jenkins автоматизированное развертывание ядра .net

CI/CD

Общий процесс

докер версия

k8s в ранчер версии

Подготовьте базовое программное обеспечение

Gogs

docker run -d -p 10022:22 -p 10080:3000 \ 
--name=gogs --net=gogs \ 
-v /opt/docker/gogs/:/data \ 
gogs/gogs

Rancher

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable

Jenkins

https://hub.docker.com/r/carsonf/jenkinsci_jenkins
https://github.com/CarsonFjz/ci-jenkins-with-docker //构建源码,可自己定制其他

Jenkins docker

1. Начальный пароль находится в файле /jenkins_home/secrets/initialAdminPassword

2. После завершения инициализации скачайте и установите плагин в левом списке [Управление системой->Управление плагинами] и перезапустите jenkins.

Установите Gogs и Git Parameter из дополнительного плагина, затем перезапустите jenkins.

3. Новый проект

4. Настройте хук в Gogs

Адрес для отправки: http://[jenkins url]/gogs-webhook/?job=[имя проекта]

5. Конфигурация проекта в Jenkins

6. Отредактируйте свой собственный файл dockerfile и docker-compose.yml.

docker-compose.yml

ps: ${GIT_BRANCH} - получить имя ветки git

version: '3.3'

services: 
  webapp:
    restart: always
    image: "${GIT_BRANCH}/webapp"
    build:
      context: WebApplication1/.
      dockerfile: Dockerfile
    container_name: webapptest
    ports:
      - "8085:8085"

dockerfile

Стройте в соответствии с вашей реальной ситуацией

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 8085

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY . .
RUN dotnet restore "WebApplication1.csproj"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

Jenkins k8s

1. Создайте образ

То же 1-5

2. Отправьте образ на dockerhub.

Если вам нужна безопасность, вы можете создать свой собственный dockerhub (гавань) //////продолжение следует