Dotnet + Docker + Jenkins + Github CI/CD Pipeline #18
HTML-код
- Опубликовано: 8 фев 2025
- Bu videoda, daha önce Docker olmadan kurulumunu yapmış olduğumuz Jenkins'i bu sefer içerisinde Docker olan bir şekilde kurduk. CI/CD oluşturabilmek için Jenkins'i Github ile çalışacak şekilde ayarladık. .Net Core Web Api projesi oluşturarak Github Repo'muza gönderdik ve Webhook yöntemi ile Github'dan Jenkins'e dosyaları aktardık. Proje içerisinde bulunan Dockerfile ile Image oluşturarak Docker Hub'a yükledik ve Docker içerisinde bir Container üzerinde çalıştırdık.
In this video, we have installed Jenkins, which we previously installed without Docker, this time with Docker in it. We set Jenkins to work with Github to create a CI / CD pipeline. We created a .Net Core Web API project, sent it to our Github Repo, and transferred the files from Github to Jenkins with the Webhook method. We created an Image with the Dockerfile in the project, uploaded it to the Docker Hub, and run it on a Container in Docker.
How to Install Jenkins on Docker
How to Install Docker in Jenkins
Docker Jenkins Installation
Jenkins Github Integration
Dockerfile Content For Jenkins with Docker:
FROM jenkins/jenkins
USER root
RUN apt-get update -qq && apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] download.docke... \
$(lsb_release -cs) \
stable"
RUN apt-get update -qq && apt-get install -qqy docker-ce docker-ce-cli containerd.io
RUN usermod -aG docker jenkins
ENTRYPOINT ["/bin/sh", "-c", "service docker start && /sbin/tini -- /usr/local/bin/jenkins.sh"]
#dockertutorial #whatisdocker #dockerinjenkins
Kanala Abone Olmayı Unutmayın!
To Subscribe: bit.ly/3kvj2vw
Bu serinin en kapsamli videosu bence bu . Cok tesekkurler emeginiz icin.
Çok yararlı bir seri. Bu kadar düzenli ve akıcı bir içerik hiç bir yerde yok.
İyi seyirler, umarım faydalı oluyordur
Bazı hocalar çok yavaş konuştuğu için videoyu hızlandırmak durumunda kalıyorum .Hocam sizde çok hızlı anlattığınız için mecbur yavaşlatmak durumunda kalıyourm :D
emeğinize sağlık, çok güzel bir çalışma olmuş.
çok harika bir eğitim olmuş Elinize sağlık.
Her şeyden önce bu emek dolu içerikleriniz için size teşekkür ve takdirlerimi gönderiyorum hocam 👏👏👏👏
Sonradan takip edecek arkadaşlara bugün karşılaştığım durum ve çözümü hakkında bir şeyler bırakayım:
Eğer adımları bugünlerde yapmaya çalışırsanız container oluştururken "mount: /sys/fs/cgroup/cpuset: permission denied." hatası alıp container'in oluşmadığı göreceksiniz "docker-compose up" komutu sonrasında..
mount: /sys/fs/cgroup/cpuset: permission denied.
mount: /sys/fs/cgroup/cpu: permission denied.
mount: /sys/fs/cgroup/cpuacct: permission denied.
mount: /sys/fs/cgroup/blkio: permission denied.
mount: /sys/fs/cgroup/memory: permission denied.
mount: /sys/fs/cgroup/devices: permission denied.
mount: /sys/fs/cgroup/freezer: permission denied.
mount: /sys/fs/cgroup/net_cls: permission denied.
mount: /sys/fs/cgroup/perf_event: permission denied.
mount: /sys/fs/cgroup/net_prio: permission denied.
mount: /sys/fs/cgroup/hugetlb: permission denied.
mount: /sys/fs/cgroup/pids: permission denied.
mount: /sys/fs/cgroup/rdma: permission denied.
mount: /sys/fs/cgroup/misc: permission denied.
Starting Docker: docker.
..
Bunu bypass etmek için .yml dosyasına aşağıdaki "privileged: true" ekledim. Belki birinin işine yarar diye buraya not düşüyorum. Yine aynı hatalar alınıyor ama sonraki steplere ilerlemiş ve sonunda jenkins çalışmış oluyor 👍👍
[root@Node1 jenkins]# more docker-compose.yml
version: '3.9'
services:
s_jenkins:
privileged: true
container_name: c_jenkins
image: ayhanyalcin/jenkinswithdocker
ports:
- 8080:8080
- 50000:50000
volumes:
- /opt/app_data/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
[root@Node1 jenkins]#
dostum sağol benim işime yaradı 5-6 saattir uğraşıyordum
Çok yararlı bir paylaşım eline sağlık👍
Çok teşekkür ederim. İyi seyirler
Teşekkürler
Yine baştan sona çok güzel bir çalışma olmuş emeğine sağlık.CI/CD nedir bu soruya da uygulamalı olarak cevap vermiş oluyorsunuz.
Teşekkür ederim. Evet amacım da aslında tam olarak buydu. Pipeline nedir nasıl oluşuyor gibi sorulara cevap verebilmek. Umarım faydalı olmuştur. İyi Seyirler.
dockerfile ı build edip image oluşturduktan sonra docker-compose up -d container ı başlatıyor ama hemen sonrasında kapanıyor loglar da sadece bunu basıyor: /etc/init.d/docker:62: ulimit: limit setting error (Invalid argument)
bunu nasıl çözebilirim ?
Sanırım bu docker versiyonu ile ilgili bir bug'mış. Şurada anlatılanları deneyebilir misiniz?
github.com/docker/cli/issues/4807
sorunu çözebildin mi ?
evet çözebildin mi?
AWS linuıx üzerinden instance oluşturup dockerı orada kullanıyorum. Ben de böyle bir hata aldım sanırsam yetkisel bir durum. Kullandığım compose file içerisine privileged: true şeklinde komut girdim. Bu komut host üzerinde yüksek yetki veriyor.
Daha sonra build ettiğin imageyi sil ve yeniden build et. Sorun oratadan kalkacaktır. Örnek olması açısından aşağıda bir compose file bırakıyorum.
services:
s_jenkins:
container_name: c_jenkins
image: ismailylmz/jwd
ports:
- 8080:8080
volumes:
- /opt/app_data/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
privileged: true
Sorunu çözmek için docker-ce nin 5:24.0.7-1 sürümünü yüklememiz gerektiği söyleniyor fakat yüklerken deprecated hatası alınıyor çözümü baya karmaşık anlaşılan varmı çözebilen ?
Çok teşekkür ederim hocam. Hiç aklıma bile gelmeyen teknolojilerle tanıştırdınız beni. Muhteşem şeyler. Yalnız bir yere takıldım. Jenkins containerına bash ile bağlanınca ve docker ps yapınca gelen container listesi exit yapıp direkt sunucu üstünde çalışan docker için docker ps yapıldığında gelen container listesi ile aynı. Bu nasıl mümkün olabiliyor ki? Yanlış birşey mi yaptım acaba? Sonuç olarak jenkins içine kurulu olan docker ayrı değil miydi? Bu konudaki fikirlerinizi alabilir miyim lütfen bir miktar kafa karışıklığı yaşamaktayım.
Umarım içerikler faydalı oluyordur. Jenkins içerisind kurduğumuz docker ı, ana sunucumuzdaki docker a bağlamış olduk aslında. O yüzden jenkins kendisi üzerinden ana docker a ulaşıp tüm komutları orada çalıştırıyor
@@TechBuddyTR çok teşekkür ederim hocam. Evet kesinlikle çok çokkk yararlı oluyor. Bazen videoyu izlerken takıldığım yerler oluyor, aklıma bir soru geliyor ve siz o an o soruyu cevaplıyorsunuz 😊 herşeyi düşünüyor olmanız süper bir şey. Takılmadan ilerleyebiliyorum. Çok teşekkür ederim 🙏
*Yeni yorum olarak yazıyorum ama sürekli kendiliğinden siliniyor sorularım hocam. Buradan atmayi deniycem.
Tekrar selamlar hocam. Katmanlı mimari ile geliştirmeye devam ettiğim bir webapi var. Öğrenme amaçlı başlamıştım. Zor bela visual studionun oluşturduğu Dokerfile'ı çalışır hale getirdim ve imageimi oluşturdum. Container olarakta ayağa kaldırdım ancak localhost:5000 deyince ve PostMan'den gerekli controllerın gerekli get metodunu çağırınca hiç birşey gelmiyor. Bomboş bir sayfa. Projede InMemoryDatabase kullanıyorum. Uygulamanın en başında veriler ekliyorum. Localde Visual Studio ile çalıştırdığımda swagger geliyor ve sorunsuz çalışıyor. Veriler de oluyor. Ancak dockerize edince uygulama ayağa kalkmasına rağmen apiden geri dönüş olmuyor. Sebebi ne olabilir acaba? Dockerfile aşağıdaki gibi. Fİkrinizi alabilir miyim lütfen?
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
#WORKDIR /src
COPY *.sln .
COPY ["WebApi/WebApi.csproj", "WebApi/"]
COPY ["Business/Business.csproj", "Business/"]
COPY ["DataAccess/DataAccess.csproj", "DataAccess/"]
COPY ["Entities/Entities.csproj", "Entities/"]
COPY ["Core/Core.csproj", "Core/"]
COPY ["WebApi.UnitTests/WebApi.UnitTests.csproj", "WebApi.UnitTests/"]
RUN dotnet restore
COPY . .
WORKDIR "/WebApi"
RUN dotnet build "WebApi.csproj" -c Release -o /build
FROM build AS publish
RUN dotnet publish "WebApi.csproj" -c Release -o /publish
FROM base AS final
WORKDIR /app
COPY --from=publish /publish .
ENTRYPOINT ["dotnet", "WebApi.dll"]
#docker build -f WebApi/Dockerfile -t teknolojiuzmani/bookstorewebapi .
#docker run -d -p 5000:80 --name bookstorewebapi teknolojiuzmani/bookstorewebapi
Sadece Dockerfile a bakarak çıkarımda bulunmak yetersiz olur. Container ayağa kalkınca portlara erişimin olup olmadığına bakabilirsiniz. Http be https olarak deneyebilirsiniz. Eğer https redirection varsa startup da onu kapatıp sadece http ile erişmeyi deneyebilirsiniz en kötü ihtimalle de docker logs -f container_name ile loglara bakabilirsiniz belki bir hata oluşuyordur
@@TechBuddyTR çok teşekkür ederim hocam startupda dediğinizi bir deniycem hemen. Http ile de https ile de denemiştim olmamıştı. Bir de öyle deniyim 🙏
Hocam merhaba teşekkürler, jenkins de docker-compose ile pipeline için dersi var mı? ben mi göremedim.
Hocam merhabalar,
+ docker build -t dmhtest ./WebApplication/.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Build step 'Execute shell' marked build as failure
Finished: FAILURE
bu hatanın sebebi ne olabilir ?
Teşekkürler
Bu komutları Jenkins üzerinde çalıştırınca mı alıyorsunuz? Eğer öyleyse direkt docker cli üzerinden yapınca da alıyor musunuz aynı hatayı?
Docker çalışmıyor olabilir mi? docker ile başlayan komutlar çalışıyor mu doğru şekilde?
@@TechBuddyTR Hocam merhabalar , şöyle söylim , linux sunucu üzerinde çalışan docker da portainer,jenkins ,redis vs bunların hepsini container'lar üzerinde çalıştırabiliyorum. Docker komutlarında herhangi bir sorun yok , fakat Jenkins , Portainer gibi docker komutlarını kendi içerisinde kullanan uygulamalarda aynı hatayı veriyor .
Teşekkürler
@@omerkarikutal8996 Ana docker üzerine erişim ile ilgili bir sorun olabilir. Şurada bir kaç bilgi var deneyebileceğin.
stackoverflow.com/questions/44678725/cannot-connect-to-the-docker-daemon-at-unix-var-run-docker-sock-is-the-docker
@@TechBuddyTR Hocam burayı çözdüm , benim kaçırdığım bir yer vardı jenkinsi kurarken. Şuan jenkins üzerinde docker-compose komutlarını kullanamıyorum , docker-compose not found diye bir hata alıyorum , docker build ile projeyi ayağa kaldırmak istediğimde ayağa kaldırabiliyorum fakat dockor-compose komutunu kullanamıyorum.
Jenkins içine docker-compose u da kurmak gerekecek
Tüm Docker dersleri için çok teşekkür ederim. Bunlar benim için paha biçilemez konular. Böyle bir yerde iliştim ama. Projemin env variable'larını bu CI/CD üzerinden nerede saklayacağım? Nereden entegre edeceğim? Hangi alternatifler mevcut? Birden fazla projem olursa bu secret'ler GitHub'dan gelmeli diye düşünüyorum. Ama tam çözüme ulaşmış değilim. Bilen birileri cevaplarsa çok sevinerim.
azure key vault bu noktada çok ideal araştırabilirsiniz
@@yilmazsekci onu biliyorum. Ama şirket yasaları gereği cloud teknolojilerini kullanmıyoruz. O yüzden sormuştum.
Bu secret'lar kendi secret store'unuzdan gelebilir. Visual Studio içerisindeki secret store da saklanabilir onun dışında, uygulama açılırken kendisine environment parameter olarak gönderilebilir. Birden farklı yerden birden farklı şekilde set edilebilir. En önemlisi bunları saklayacak güvenli bir yerinizin olması. Encryption kullanılarak dosyalar da bile saklanabilir gerekirse :-)
Hocam merhabalar
webhook işlemi yaparken , github reposu benim private. Push işleminde herhangi bir tetiklenme olmuyor . Ne yapabilirim ?
Teşekkürler
Private repo lar için Jenkins üzerinde entegrasyon yaparken credential girmek gerekiyor olabilir. Credential ayarlarını yapıp jenkins üzerinden github'a erişebildiniz mi?
@@TechBuddyTR credentials bilgilerine girdim , zaten kendim manuel tetiklediğim zaman proje istediğim portta ayağa kalkıyor, fakat webhook otomatik olarak push ları algılamıyor sanırım.
hocam ubuntu kullanıyorum
Starting Docker: docker.
/bin/sh: 1: /sbin/tini: not found
bu hatayı veriyor ne yapmam gerekir ?
ben de windowsta aynı hatayı alıyorum.
&& /sbin/tini bunu silmelisin o satırdan
merhaba aşağıdaki gibi revize ederseniz sorun olmayacaktır.
ENTRYPOINT ["/bin/sh", "-c", "service docker start && /bin/tini -- /usr/local/bin/jenkins.sh"]
Selamlar,
jenkinswithdocker containeri içerisinde dotnet build komutunu çalıştırırken server komple donuyor. Birebir sizinle aynı Dockerfile kullandım. Buna ek olarak, sizin videonuzu görmeden önce jenkinsi direkt local serverima kurmuştum o zaman da npm run build komutunu çalıştırmamıştı. Genel build komutlarında neden böyle bir problem oluyor anlamış değilim. Sorun nedir bir bilginiz var mı ?
Detaylı logları görmeden bir şey söyleyemem. Jenkins üzerinde dotnet build çalıştırabilmek için Jenkins container'ı içinde dotnet sdk kurulu olmalı. Tam olarak aldığınız hata mesajı nedir?
Tık
2 Tıık
Burda ucretli tarafinda bizim goremedigimiz derlser varmi?
Hayır, Docker ve Blazor serisinde tüm videolar herkese açık. Zaten videolar üyelere özel yayınlansa bile videoları herkes görebiliyor ama izleyemiyor üye olmadan
@@TechBuddyTR Ben Kirgizstannan izliyorum derslerinizi ama bizim tarafta ucretli uye ol diye button yok! Burda sonraki derste docker compose ile jenkins yapacagiz demissiniz cekmedinizmi? yoksa banami gozukmuyo?)
Docker compose ve jenkins videoları var kanalda ve herkese görünüyor şu an.
Merhabalar
Burada jenkins üzerinden docker hub ' a push işlemi yapmamızın bir mantığı yada bir yararı varmıdır ? Çünkü anladığım kadarıyla docker hub a pushlamadan da bu süreci işletebiliyoruz değil mi ?
Şimdiden çok teşekkür ederim.
Bu videoda özellikle push lamamızın bir sebebi yok aslında, sadece jenkins aracılığı ile push layabiliyor olduğumuzu göstermek istedim. Ancak daha sonra Docker Swarm ile birden fazla sunucuya aynı container'ın kurulması işlemlerini yapacağımız bir videoda bahsettiğim gibi orada push lamak zorunda kalacağız çünkü jenkins kodu derleyip bir image oluşturacak ve bunun tüm sunuculara gitmiş olmasını sağlayacak. Bunu yapabilmek için de image yaratıldıktan sonra Docker Hub'a pushlanacak ve tüm sunucular da o image ı kullanarak bir container oluşturacak.
@@TechBuddyTR Çok çok teşekkür ederim , haftalarca aradığım bir seri , Sade basit bir anlatım , tekrardan çok teşekkürler.
@@TechBuddyTR Birşey daha sormak istiyorum . Docker swarm videosunu izledim fakat , birden fazla container çalıştırılıyor fakat bunları jenkins üzerinden nasıl push vs yapacağımız , tetikleyeceğimiz gösterilmiyor ? Yeni bir video mu gelecek ?
@@omerkarikutal8996 Birden fazla sunucuda aynı container'ı çalıştırdığımız videolar da var seride. O videolar da push ediliyor image'larımız.
5:25
mkdir: cannot create directory ‘cpuset’: Read-only file system böyle bir hata alıyorum hocam nasıl çözebilirim?
Teşekkürler Hocam
Sanırım kullanıcı da sudo yetkisi yok.
askubuntu.com/questions/287021/how-to-fix-read-only-file-system-error-when-i-run-something-as-sudo-and-try-to
@@TechBuddyTR Teşekkürler Hocam
@@furkanpasaoglu4079 üstadım sorunu nasıl çözdüğünü hatırlıyor musun? Tam iki gündür uğraşıyorum olmuyor.
@@TechBuddyTR Hocam aynı sorun bende de var. Yoruma eklediğiniz link dahil, server'i silip tekrardan baştan docker'i kurmayı bile denedim birebir aynı hatayı aldım. Yardımcı olabilir misiniz?
Selamlar,
Dockerfile build sonrasında build edilen image ile compose up yaptığımda mkdir: cannot create directory ‘cpuset’: Read-only file system hatası almaktayım.
Çözümü hakkında bilginiz mevcut mudur acaba?
Selamlar problemi çözebildin mi acaba ?
Jenkis hakkinda detayli dersler gelirmi?
Merhabalar, Jenkins ile ilgili detaylı bir video serisi şu an için gündemim de yok. Muhtemelen gelmez böyle bir seri.
Ben baya kanalın müdavimi oldum :D
Kafama takılan bir şey oldu hocam.
Jenkins sanki bir işletim sistemi de biz içine docker kuruyoruz gibi bir şey oldu. Bu nasıl bir şey ben pek kafamda oturtamadım biraz açabilir misin ? :/
Jenkins bir Docker içerisindeki bir Container olacağı için, Ana Docker Engine üzerine bağlanarak orada docker komutlarını çalıştırması gerekiyor. Ana Docker Engine'e bağlanabilmek için ise içerisinde Docker kurarak docker.sock aracılığı ile bağlanmalarını sağlıyoruz. Aslında Docker Image'lar videosunda bahsetmiştim. Her Image bir Base Image'dan türüyor demiştim. Tüm Base Image'lar içerisinde Linux'un çok küçük bir Core'unu bulundurur. Yani kısaca her Image bir işletim sistemi barındırır ve biz container ayağa kaldırdığımızda o container içerisinde çalışan Image bir işletim sistemi üzerinde çalışır. Dolayısı ile o işletim sistemine bağlanabiliyoruz ve hatta kendi komutlarımızı çalıştırıyoruz. Jenkins'in yaptığı da bu aslında.
@@TechBuddyTR çok net oturdu hocam valla teşekkür ederim :) image'lar bölümünü de izlemiştim aslında ama simdi daha iyi anlamış oldum.
Ne zaman docker in docker yapsam, dockerı kapatıp açtığımda bu hatayı alıyorum. Portainerde de aynı hata oluşuyor jenkinste de.
prnt.sc/w6g6mf
/var/run/docker.sock:/var/run/docker.sock
burada bir yanlış yapıyorum sanırım. internette de çözüm bulamadım.
root@DESKTOP-UDQI6PE:/opt# service docker status
docker: unrecognized service
systemctl status docker ile docker servisinin durumunu kontrol edebilrisin. docker'ı her açtığında servisin otomatik çalışmasını istiyorsan da şöyle yapman lazım. systemctl enable docker
@@TechBuddyTR
Benim servis komple uçuyor herhalde hocam
prnt.sc/w6gjma
Ve bu sorun
Benim Wsl2 Ubuntu kullanmamdan ötürü sanırım.
prnt.sc/w6gk1t
#13 ERROR: executor failed running [/bin/sh -c dotnet publish --no-restore -c Release -o out]: runc did not terminate sucessfully
------
> [build-env 6/6] RUN dotnet publish --no-restore -c Release -o out:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c dotnet publish --no-restore -c Release -o out]: runc did not terminate sucessfully
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Böyle bir hata veriyor?
Hatayı daha detaylandırabilmek için Jenkins üzerinde bu işlem ile ilgili tüm logları paylaşabilir misiniz?
Şunları yaparak tekrar test edebilirsiniz.
1) Dockerfile dosyasının isminin "Dockerfile" şeklinde yazıldığından emin olun.
2) systemctl status docker (host makinede) çalıştırarak Docker'ın ayakta olduğundan emin olun.
3) systemctl restart docker (host makinede) çalıştırarak docker servisini yeniden başlatabilirsiniz
@@TechBuddyTR Started by user Atalay KESKİN
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/TestApi
The recommended git tool is: NONE
No credentials specified
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url github.com/atakeskin/TestApi.git # timeout=10
Fetching upstream changes from github.com/atakeskin/TestApi.git
> git --version # timeout=10
> git --version # 'git version 2.11.0'
> git fetch --tags --progress -- github.com/atakeskin/TestApi.git +refs/heads/*:refs/remotes/origin/* # timeout=10
> git rev-parse refs/remotes/origin/main^{commit} # timeout=10
Checking out Revision e53539744a99425260a1d7be5de817b22174b61d (refs/remotes/origin/main)
> git config core.sparsecheckout # timeout=10
> git checkout -f e53539744a99425260a1d7be5de817b22174b61d # timeout=10
Commit message: "Docker güncelleme commit"
> git rev-list --no-walk e53539744a99425260a1d7be5de817b22174b61d # timeout=10
[TestApi] $ /bin/sh -xe /tmp/jenkins3200069562091481777.sh
+ docker build -t atakeskin/testapi ./Api/.
#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile:
#2 transferring dockerfile: 32B 0.1s done
#2 DONE 0.3s
#1 [internal] load .dockerignore
#1 transferring context: 2B 0.1s done
#1 DONE 0.2s
#4 [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:3.1
#4 DONE 2.0s
#3 [internal] load metadata for mcr.microsoft.com/dotnet/core/sdk:3.1
#3 DONE 2.0s
#7 [build-env 1/6] FROM mcr.microsoft.com/dotnet/core/sdk:3.1@sha256:47284c...
#7 DONE 0.0s
#5 [stage-1 1/3] FROM mcr.microsoft.com/dotnet/core/aspnet:3.1@sha256:3991c...
#5 resolve mcr.microsoft.com/dotnet/core/aspnet:3.1@sha256:3991c66d0cafa23c1b0cc16f770b101372d5e502e1afbc6aeab289652b3bbb50
#5 resolve mcr.microsoft.com/dotnet/core/aspnet:3.1@sha256:3991c66d0cafa23c1b0cc16f770b101372d5e502e1afbc6aeab289652b3bbb50 done
#5 DONE 0.0s
#6 [stage-1 2/3] WORKDIR /app
#6 CACHED
#9 [internal] load build context
#9 transferring context: 2.92kB 0.0s done
#9 DONE 0.1s
#10 [build-env 3/6] COPY *.csproj .
#10 CACHED
#11 [build-env 4/6] RUN dotnet restore
#11 CACHED
#8 [build-env 2/6] WORKDIR /app
#8 CACHED
#12 [build-env 5/6] COPY . ./
#12 CACHED
#13 [build-env 6/6] RUN dotnet publish --no-restore -c Release -o out
#13 8.294 Microsoft (R) Build Engine version 16.7.1+52cd83677 for .NET
#13 8.294 Copyright (C) Microsoft Corporation. All rights reserved.
#13 8.294
#13 13.00 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: The "ResolvePackageAssets" task failed unexpectedly. [/app/Api.csproj]
#13 13.00 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Microsoft\Xamarin\NuGet\'. [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable`1 fallbackPackageFolders) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(IEnumerable`1 packageFolders) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task) [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups() [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore() [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/app/Api.csproj]
#13 13.01 /usr/share/dotnet/sdk/3.1.404/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(241,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/app/Api.csproj]
#13 ERROR: executor failed running [/bin/sh -c dotnet publish --no-restore -c Release -o out]: runc did not terminate sucessfully
------
> [build-env 6/6] RUN dotnet publish --no-restore -c Release -o out:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c dotnet publish --no-restore -c Release -o out]: runc did not terminate sucessfully
Build step 'Execute shell' marked build as failure
Finished: FAILURE
@@TechBuddyTR atakeskin@DESKTOP-QS9L8GJ:/opt/app_docs/testapp$ systemctl status docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
@@TechBuddyTR atakeskin@DESKTOP-QS9L8GJ:/opt/app_docs/testapp$ systemctl restart docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
systemctl enable docker
systemctl start docker
Komutlarını çalıştırabilir misiniz?
17. videoda jenkinsi zaten kurmuştuk. buradaki işlemin farkı ne
Jenkins içerisinde docker çalıştırıyor
Teşekkürler hocam. Dockerfile da sorun yaşayan olursa docker-compose dosyasındaki image'ı bununla değiştirebilirsiniz "muazmemis/jenkins-docker"
Hocam Allah razı olsun sizden. Saç baş yoldum sabahtan beri. İmajı değiştirince düzeldi. Çok teşekkürler
@@emreyuce306 çözüm olduğuna sevindim 😊
Teşekkürler elinize sağlık Salih bey. Çok güzel bir seri. Docker windows desktop ta Docker file yi çalıştırırken şu hatayı aldım:'ERROR: failed to solve: process "/bin/sh -c apt-get update -qq && apt-get install -qqy docker-ce docker-ce-cli containerd .io" did not complete successfully: exit code: 100'.