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

Комментарии • 94

  • @fkbey5756
    @fkbey5756 2 года назад +2

    Bu serinin en kapsamli videosu bence bu . Cok tesekkurler emeginiz icin.

  • @eminucar1
    @eminucar1 3 года назад +2

    Çok yararlı bir seri. Bu kadar düzenli ve akıcı bir içerik hiç bir yerde yok.

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +2

      İyi seyirler, umarım faydalı oluyordur

  • @oguzhankomcu2031
    @oguzhankomcu2031 2 года назад +1

    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

  • @seyhmusozbek
    @seyhmusozbek 3 года назад +2

    emeğinize sağlık, çok güzel bir çalışma olmuş.

  • @burakg07
    @burakg07 2 года назад +2

    çok harika bir eğitim olmuş Elinize sağlık.

  • @ayhanyalcn5709
    @ayhanyalcn5709 2 года назад

    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]#

    • @Yunus-cc4xo
      @Yunus-cc4xo 2 года назад

      dostum sağol benim işime yaradı 5-6 saattir uğraşıyordum

  • @ozdemirsahin8955
    @ozdemirsahin8955 3 года назад +2

    Çok yararlı bir paylaşım eline sağlık👍

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      Çok teşekkür ederim. İyi seyirler

  • @isakarakus8537
    @isakarakus8537 6 месяцев назад +1

    Teşekkürler

  • @mrturkmez
    @mrturkmez 3 года назад +3

    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.

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +3

      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.

  • @vooroorxxx7339
    @vooroorxxx7339 9 месяцев назад +1

    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 ?

    • @TechBuddyTR
      @TechBuddyTR  9 месяцев назад

      Sanırım bu docker versiyonu ile ilgili bir bug'mış. Şurada anlatılanları deneyebilir misiniz?
      github.com/docker/cli/issues/4807

    • @nurullah3696
      @nurullah3696 9 месяцев назад

      sorunu çözebildin mi ?

    • @okansahbaz
      @okansahbaz 7 месяцев назад

      evet çözebildin mi?

    • @ismailylmaz1310
      @ismailylmaz1310 4 месяца назад

      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

    • @canaxs
      @canaxs 4 месяца назад

      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 ?

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 3 года назад +1

    Ç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.

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      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

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 3 года назад +1

      @@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 🙏

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 3 года назад +1

      *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

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      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

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 3 года назад

      @@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 🙏

  • @zaferkrk368
    @zaferkrk368 2 года назад

    Hocam merhaba teşekkürler, jenkins de docker-compose ile pipeline için dersi var mı? ben mi göremedim.

  • @omerkarikutal8996
    @omerkarikutal8996 3 года назад +1

    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

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      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?

    • @omerkarikutal8996
      @omerkarikutal8996 3 года назад +1

      @@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

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      @@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

    • @omerkarikutal8996
      @omerkarikutal8996 3 года назад +1

      @@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.

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      Jenkins içine docker-compose u da kurmak gerekecek

  • @faridhabibli625
    @faridhabibli625 5 месяцев назад

    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.

    • @yilmazsekci
      @yilmazsekci 5 месяцев назад

      azure key vault bu noktada çok ideal araştırabilirsiniz

    • @faridhabibli625
      @faridhabibli625 5 месяцев назад

      @@yilmazsekci onu biliyorum. Ama şirket yasaları gereği cloud teknolojilerini kullanmıyoruz. O yüzden sormuştum.

    • @TechBuddyTR
      @TechBuddyTR  5 месяцев назад +1

      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 :-)

  • @omerkarikutal8996
    @omerkarikutal8996 3 года назад +1

    Hocam merhabalar
    webhook işlemi yaparken , github reposu benim private. Push işleminde herhangi bir tetiklenme olmuyor . Ne yapabilirim ?
    Teşekkürler

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      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?

    • @omerkarikutal8996
      @omerkarikutal8996 3 года назад

      ​@@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.

  • @muhammeda1426
    @muhammeda1426 2 года назад +4

    hocam ubuntu kullanıyorum
    Starting Docker: docker.
    /bin/sh: 1: /sbin/tini: not found
    bu hatayı veriyor ne yapmam gerekir ?

    • @kemal.kocabas
      @kemal.kocabas 2 года назад

      ben de windowsta aynı hatayı alıyorum.

    • @muhammeda1426
      @muhammeda1426 2 года назад

      && /sbin/tini bunu silmelisin o satırdan

    • @muhammedilgaz4885
      @muhammedilgaz4885 2 года назад

      merhaba aşağıdaki gibi revize ederseniz sorun olmayacaktır.
      ENTRYPOINT ["/bin/sh", "-c", "service docker start && /bin/tini -- /usr/local/bin/jenkins.sh"]

  • @otokon
    @otokon 3 года назад +1

    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ı ?

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      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?

  • @rdmztkn
    @rdmztkn 4 года назад +3

    Tık

  • @ermekbakyt5507
    @ermekbakyt5507 3 года назад +1

    Burda ucretli tarafinda bizim goremedigimiz derlser varmi?

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      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

    • @ermekbakyt5507
      @ermekbakyt5507 3 года назад +1

      @@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?)

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      Docker compose ve jenkins videoları var kanalda ve herkese görünüyor şu an.

  • @omerkarikutal8996
    @omerkarikutal8996 3 года назад +1

    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.

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      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.

    • @omerkarikutal8996
      @omerkarikutal8996 3 года назад

      @@TechBuddyTR Çok çok teşekkür ederim , haftalarca aradığım bir seri , Sade basit bir anlatım , tekrardan çok teşekkürler.

    • @omerkarikutal8996
      @omerkarikutal8996 3 года назад +1

      @@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 ?

    • @TechBuddyTR
      @TechBuddyTR  3 года назад

      @@omerkarikutal8996 Birden fazla sunucuda aynı container'ı çalıştırdığımız videolar da var seride. O videolar da push ediliyor image'larımız.

  • @furkanpasaoglu4079
    @furkanpasaoglu4079 3 года назад +1

    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

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      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

    • @furkanpasaoglu4079
      @furkanpasaoglu4079 3 года назад

      @@TechBuddyTR Teşekkürler Hocam

    • @sokakmuzikleri
      @sokakmuzikleri 2 года назад

      @@furkanpasaoglu4079 üstadım sorunu nasıl çözdüğünü hatırlıyor musun? Tam iki gündür uğraşıyorum olmuyor.

    • @sokakmuzikleri
      @sokakmuzikleri 2 года назад

      @@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?

  • @enessgurell
    @enessgurell Год назад

    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?

    • @bilalyaman8700
      @bilalyaman8700 Год назад

      Selamlar problemi çözebildin mi acaba ?

  • @ermekbakyt5507
    @ermekbakyt5507 3 года назад +1

    Jenkis hakkinda detayli dersler gelirmi?

    • @TechBuddyTR
      @TechBuddyTR  3 года назад +1

      Merhabalar, Jenkins ile ilgili detaylı bir video serisi şu an için gündemim de yok. Muhtemelen gelmez böyle bir seri.

  •  4 года назад

    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 ? :/

    • @TechBuddyTR
      @TechBuddyTR  4 года назад +2

      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.

    •  4 года назад +1

      @@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.

  •  4 года назад +1

    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

    • @TechBuddyTR
      @TechBuddyTR  4 года назад +1

      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

    •  4 года назад

      @@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

  • @AtalayKeskin
    @AtalayKeskin 4 года назад

    #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?

    • @TechBuddyTR
      @TechBuddyTR  4 года назад

      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

    • @AtalayKeskin
      @AtalayKeskin 4 года назад

      @@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

    • @AtalayKeskin
      @AtalayKeskin 4 года назад

      @@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

    • @AtalayKeskin
      @AtalayKeskin 4 года назад

      @@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

    • @TechBuddyTR
      @TechBuddyTR  4 года назад

      systemctl enable docker
      systemctl start docker
      Komutlarını çalıştırabilir misiniz?

  • @muhdinighttcgvalorant4479
    @muhdinighttcgvalorant4479 Год назад

    17. videoda jenkinsi zaten kurmuştuk. buradaki işlemin farkı ne

    • @yunanistan2364
      @yunanistan2364 9 месяцев назад

      Jenkins içerisinde docker çalıştırıyor

  • @muazmemis
    @muazmemis 8 месяцев назад +2

    Teşekkürler hocam. Dockerfile da sorun yaşayan olursa docker-compose dosyasındaki image'ı bununla değiştirebilirsiniz "muazmemis/jenkins-docker"

    • @emreyuce306
      @emreyuce306 5 месяцев назад +1

      Hocam Allah razı olsun sizden. Saç baş yoldum sabahtan beri. İmajı değiştirince düzeldi. Çok teşekkürler

    • @muazmemis
      @muazmemis 5 месяцев назад +1

      @@emreyuce306 çözüm olduğuna sevindim 😊

  • @SlmAbi
    @SlmAbi Месяц назад

    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'.