Jenkins Tutorial - How to Deploy a Test Server with Docker + Linux (Full Course)

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ค. 2024
  • Learn about Jenkins by building a CI/CD pipeline for a web application. Jenkins is an open source automation server which makes it easier to build, test, and deploy software. In this course, you will learn how to build a full dev-ops pipeline using Jenkins, Linode Servers, and other tools.
    🔗 Course Readme: github.com/gwenf/jenkins-fcc-...
    🔗 Sign up for Linode with a $100 credit: www.linode.com/students
    ✏️ Gwendolyn Faraday developed this course. Check out her channel: / faradayacademy
    🏗 Linode provided a grant that made this course possible.
    ⭐️ Contents ⭐️
    ⌨️ (00:00:00) Video Intro
    ⌨️ (00:01:33) Course Overview
    ⌨️ (00:02:36) What is Jenkins?
    ⌨️ (00:08:47) Terms & Definitions
    ⌨️ (00:11:58) Project Architecture
    ⌨️ (00:13:28) Linode Intro
    ⌨️ (00:20:18) Setting Up Jenkins
    ⌨️ (00:24:11) Tour of Jenkins Interface
    ⌨️ (00:30:33) Installing Plugins
    ⌨️ (00:33:39) Blue Ocean
    ⌨️ (00:34:55) Creating a Pipeline
    ⌨️ (00:42:37) Installing Git
    ⌨️ (00:45:15) Jenkinsfile
    ⌨️ (00:46:27) Updating a Pipeline
    ⌨️ (00:52:05) Jenkins with nom
    ⌨️ (00:56:36) Docker & Dockerhub
    ⌨️ (01:02:14) Closing Remarks
    🎉 Thanks to our Champion and Sponsor supporters:
    👾 Raymond Odero
    👾 Agustín Kussrow
    👾 aldo ferretti
    👾 Otis Morgan
    👾 DeezMaster
    --
    Learn to code for free and get a developer job: www.freecodecamp.org
    Read hundreds of articles on programming: freecodecamp.org/news

ความคิดเห็น • 121

  • @FaradayAcademy
    @FaradayAcademy ปีที่แล้ว +86

    Thanks for the opportunity to make this tutorial! DevOps is a lot of fun and I enjoyed getting to create this video 🙂
    Let me know if you have any questions 🤓

    • @LimitlessMinds
      @LimitlessMinds ปีที่แล้ว +1

      Always bringing excelent content @Faraway Academy

    • @theencryptedpartition4633
      @theencryptedpartition4633 ปีที่แล้ว +1

      So good seeing u here Gwen! Welcome back

    • @RomanBorowinski
      @RomanBorowinski ปีที่แล้ว

      @Ryotsu Kankichi Exactly! What was the point crating second server for Docker when there was nowhere shown how to pull latest image from Dockerhub to the server and show application working! Is there a second part coming?

    • @jessicaalvarez2314
      @jessicaalvarez2314 ปีที่แล้ว

      hello im a slow learner with dislexia, ive been learning javascript since april and forgot 99% of what ive learned any advice?

    • @Benjamin-vv3br
      @Benjamin-vv3br ปีที่แล้ว +1

      @Faraday Academy Does anyone know the name of the extension used in 17:44 to generate a password?

  • @cybermindable
    @cybermindable ปีที่แล้ว

    Amazing job! Thank you for such a nice and clean introduction to Jenkins!

  • @clintonhussein7940
    @clintonhussein7940 ปีที่แล้ว +5

    It's the most desirable tutorial for me right now, thank you very much

  • @Jhonfreddy15
    @Jhonfreddy15 ปีที่แล้ว +1

    I NEEDED THIS. Thanks . There are where few videos about Jenkins . Nowadays all attention is focus on GitHub actions and other similar products

  • @mykolatokariev8260
    @mykolatokariev8260 11 หลายเดือนก่อน

    Your tempo and your explanation is in my opinion the best ❤

  • @light.yagami787
    @light.yagami787 ปีที่แล้ว

    This was a very good introduction. Thanks for also leaving in the error your encountered.

  • @aidoka2000
    @aidoka2000 ปีที่แล้ว +14

    Awesome tutorial. Was super easy to understand and follow along. Thank you Gwen and FCC.

    • @mazharansari7813
      @mazharansari7813 หลายเดือนก่อน

      Is this complete jenkins tutorial? And also are there any pre requisites?

  • @majidalikhanquaid984
    @majidalikhanquaid984 ปีที่แล้ว

    Well explained and easy to follow tutorial. Good Work

  • @TalkingAboutComputerScience
    @TalkingAboutComputerScience ปีที่แล้ว

    Great material and great intro. Thanks for sharing!

  • @user-un3qd6tv7l
    @user-un3qd6tv7l ปีที่แล้ว

    Simple but interactive. Thank you

  • @devihomes
    @devihomes ปีที่แล้ว

    Great presentation and a good introduction for newbies

  • @thamaraie
    @thamaraie ปีที่แล้ว

    Thank you for making this video for learning myself.

  • @vrushalrt
    @vrushalrt ปีที่แล้ว

    Thanks a lot most needed ...waiting for so far 😀

  • @Nedwarez
    @Nedwarez ปีที่แล้ว

    Its a pretty good tutorial, I got stuck in the github API rate limit which I´m trying to solve now. Thanks a lot!

  • @Pray4ragE
    @Pray4ragE ปีที่แล้ว +1

    Been needing this, thanks!

  • @gabrielgitonga1252
    @gabrielgitonga1252 ปีที่แล้ว

    This is amazing content for beginners. Learned and understand what Jenkins can do

    • @mazharansari7813
      @mazharansari7813 หลายเดือนก่อน

      Is this complete jenkins tutorial? And also are there any pre requisites?

  • @hariprasadoo
    @hariprasadoo 8 หลายเดือนก่อน

    Thank you for the tutorial!

  • @juanperaza5471
    @juanperaza5471 ปีที่แล้ว

    Hey Gwen! amazing content. :)

  • @agelosnm
    @agelosnm ปีที่แล้ว +1

    Nice tutorial covering Jenkins at a glance. What is not mentioned though is a procedure of deploying an artifact in a server after this has been built from Jenkins. In general this a topic that I have devoted with and I haven't find any smooth way (like using a Jenkins plugin for example) to push your code to a server without just SSH to it and do your magic there with custom bash commands.

    • @uBastianX
      @uBastianX ปีที่แล้ว

      It depends. If you use kubernetes, you can upload your newly built image to your image repository, update the corresponding manifest and ArgoCD will automatically deploy it. I've built similar pipelines in which, with Jenkins running inside Kubernetes, it's deployed using Kubernete's rest API.
      If it's static content, you can use your infrastructure's API to update it at some pipeline's step, etc.

  • @GabrielRodriguezInjectedFusion
    @GabrielRodriguezInjectedFusion ปีที่แล้ว

    Hooray this course is here!

  • @david2358
    @david2358 ปีที่แล้ว

    Thank you, learned a lot!! 👍

  • @milad8436
    @milad8436 ปีที่แล้ว

    What a great course. Thank a lot

  • @fuuman5
    @fuuman5 ปีที่แล้ว +3

    Nice tutorial. Thank you.
    One question: Every time I push server to the code, your pipeline would build a docker image. Would that fill up the server's filesystem with images or is Jenkins cleaning that up automatically? Or should I put another stage in the pipeline (after pushing it to the hub) to delete the image that was just built?

  • @OleksandrBorysenko333
    @OleksandrBorysenko333 9 หลายเดือนก่อน

    It is a great tutorial! Probably I'll watch this video again - I didn't catch it all in one view.

  • @jujubawa2845
    @jujubawa2845 ปีที่แล้ว

    Wow wow wow.. Thanks a ton for this 🙏

  • @eranxbe
    @eranxbe ปีที่แล้ว

    Very useful video, thanks!

  • @naveengokavarapu5294
    @naveengokavarapu5294 ปีที่แล้ว +2

    Very informative video

  • @abhishekkumarjha1526
    @abhishekkumarjha1526 ปีที่แล้ว

    Just what I needed when I needed.

  • @greob
    @greob ปีที่แล้ว

    Nice demo!

  • @DevOpsJourney
    @DevOpsJourney ปีที่แล้ว

    Awesome to see. I also just posted a Jenkins Tutorial recently

  • @OpenToLearn
    @OpenToLearn ปีที่แล้ว +1

    FreeCodeCamp my fav thanks for all the contents some corrections as given below.
    Mistake at 9:48 the slide says Continuous delivery automatically deploys code to production but that's not right as we need manual approval for Continuous Delivery only in case of Continuous deployment we will automatically deploy the code to prod. There is a huge difference between Continuous delivery and deployment.

  • @HoneyBadgerz
    @HoneyBadgerz ปีที่แล้ว +1

    Great video!!
    I have a question though... 20:09 did you used the the second server ie _freecodecamp-application_

  • @zafar5783
    @zafar5783 ปีที่แล้ว

    Thanks a lot ❤️

  • @rakenduvadana2275
    @rakenduvadana2275 ปีที่แล้ว

    Thank you so much!

  • @tusharbharane1484
    @tusharbharane1484 ปีที่แล้ว

    Really thanks a lot free code camp 😌

  • @jonl316
    @jonl316 ปีที่แล้ว

    Thank you!!

  • @rahmouni-mohamed
    @rahmouni-mohamed ปีที่แล้ว

    So helpfull, thanks a lot

  • @buntyrajput1824
    @buntyrajput1824 ปีที่แล้ว

    Awesome 👍

  • @asimal-tayeb5355
    @asimal-tayeb5355 ปีที่แล้ว +1

    great content

  • @SandyLearner
    @SandyLearner ปีที่แล้ว +25

    Thanks and Great for Upload !!!
    Make a Playlist contains all DevOps related Courses Like AWS , Azure, K8s,terraform,GitLab now Jenkins
    If possible Pls make Video on Python for DevOps with Automation / Ansible for DevOps . Which will sum-up to all existing DevOps related Courses
    👍👍

    • @freecodecamp
      @freecodecamp  ปีที่แล้ว +12

      Good idea. th-cam.com/play/PLWKjhJtqVAbkzvvpY12KkfiIGso9A_Ixs.html

  • @anthonyrussano
    @anthonyrussano ปีที่แล้ว

    Thank you!!!

  • @vishalviswanathan9810
    @vishalviswanathan9810 ปีที่แล้ว +2

    Please make more videos on Jenkins .

  • @kurshadqaya1684
    @kurshadqaya1684 11 หลายเดือนก่อน

    Thank you!

  • @codingmoments
    @codingmoments ปีที่แล้ว

    Thnx for this video

  • @henryzheng3387
    @henryzheng3387 ปีที่แล้ว +1

    Thanks!

  • @guythis757
    @guythis757 ปีที่แล้ว +2

    need to explain how to handle secure variables like dockerhub creds in pipelines in more detail, this is a pretty significant possible security flaw irl

  • @jimodey3108
    @jimodey3108 ปีที่แล้ว +1

    I just literally finished now! Thanks Gwen and freecodecamp! It was fun!

    • @lechf1
      @lechf1 ปีที่แล้ว

      Npm works without error?

    • @mazharansari7813
      @mazharansari7813 หลายเดือนก่อน

      Is this complete jenkins tutorial? And also are there any pre requisites?

  • @chanpreetsingh007
    @chanpreetsingh007 ปีที่แล้ว

    Never disappoints.

  • @anthonyk6707
    @anthonyk6707 ปีที่แล้ว +1

    hi Gwen, I wasn't able to move past the front-end test section as it was running into a validation error as the vue-jest module in the transform option was not found. Has anyone else run into this issue?

  • @taiuc2923
    @taiuc2923 ปีที่แล้ว +1

    Could you guys make a data fundamentals full course pls

  • @BR-lx7py
    @BR-lx7py ปีที่แล้ว +4

    Having to install git/node/whatever on the build servers seems to be not ideal. What if different projects require different software versions? Is the best practice to run those tests in containers?

    • @agelosnm
      @agelosnm ปีที่แล้ว +1

      Definetely running tests with containers is a good practice as it exempts you from the obvious problems that you will face if not following this procedure. This can be easily configured by having something like the below under the Pipeline scope of Jenkinsfile.
      environment {
      JAVA_TOOL_OPTIONS = '-Duser.home=/var/maven'
      }
      agent {
      docker {
      image 'maven:3.8.1-jdk-11'
      args '-v /tmp/maven:/var/maven/.m2 -e MAVEN_CONFIG=/var/maven/.m2'
      }
      }
      I guess sth equivalent will exist for npm and other platforms as well.

  • @hariasimov21
    @hariasimov21 ปีที่แล้ว

    the part of docker is not complete, but its a fonemenal tutorial, thanks!!!

  • @TaHrPa
    @TaHrPa 5 หลายเดือนก่อน

    Nice beginner tutorial. I have just one question - if the stage agent is set to "any" and we have Docker installed only on the "Docker" agent, then wouldn't it fail if the job is sent to the other agent?

    • @mazharansari7813
      @mazharansari7813 หลายเดือนก่อน

      Is this complete jenkins tutorial? And also are there any pre requisites?

  • @davedoan5684
    @davedoan5684 6 หลายเดือนก่อน +1

    I wonder why do you need another linode instance which install docker?

  • @lechf1
    @lechf1 ปีที่แล้ว +1

    Anyone had error
    npm ERR! code ENOMEM
    npm ERR! syscall spawn
    npm ERR! errno -12
    npm ERR! spawn ENOMEM
    after add command front-end unit test (53:00)?

  • @dimanranawaka
    @dimanranawaka ปีที่แล้ว

    Wow❤😍

  • @juandiegosilvagarcia1783
    @juandiegosilvagarcia1783 ปีที่แล้ว

    Beautiful 😍

  • @jagadish86
    @jagadish86 ปีที่แล้ว

    I am using jenkins for cicd, in jenkins under manage Nodes and cloud --> left hand side we get configure cloud.. We usually create cloud instances manually adding ip, name of the slave machines..so that jenkins job could use Is their rest api I could use to create new cloud slave under configure cloud option ???

  • @elzosantos1253
    @elzosantos1253 10 หลายเดือนก่อน

    Hi, everything ok? I would like to congratulate you for your work, I would like to know if there is a way for me to create another Jenkins account, because I am a beginner and I used the "role-based strategy" plugin and I ended up not creating the permissions and now I log into my account, but I do not have the permissions in "windows"

  • @tusharbharane1484
    @tusharbharane1484 ปีที่แล้ว

    @Free Code Camp can you please make a full course on Kubernetes

  • @andreinegru6179
    @andreinegru6179 ปีที่แล้ว +1

    Hmm.. it's just me noticing you created a separate Linux machine with Docker but never used it ? But nice tutorial to start with Jenkins 👍

  • @aces8481
    @aces8481 ปีที่แล้ว

    LETSSSSGOOO

  • @aaronbaron6468
    @aaronbaron6468 ปีที่แล้ว

    I wasn't ready for the plin plin plon name drop

  • @blazed-space
    @blazed-space ปีที่แล้ว +1

    ❤YES FINALLY!!!! Jenkins!!!!😂🎉🎉🎉🎉🎉😅😅😅😂😭😭😍😍😍

    • @blazed-space
      @blazed-space ปีที่แล้ว

      Btw: when she said security, she wasn’t kidding. I’ve checked many an SSH log to see Chinese or Russian hackers try to brute force my instances with username “jenkins”, so lock down your SSH host (private/public key, no password less login, no password login, additionally change the port)

  • @tljstewart
    @tljstewart ปีที่แล้ว

    How is your "Login" stage persisted to you "Push" stage? Aren't stages isolate environments, or do they persist variables and changes to the next stage?

    • @whatsap6851
      @whatsap6851 ปีที่แล้ว

      Helpline📲📥⬆️
      Questions can come in⬆️

  • @sumitmayanglambam5346
    @sumitmayanglambam5346 ปีที่แล้ว

    Can a Arduino uno control 4 motor individsually

  • @romansinitsky9953
    @romansinitsky9953 หลายเดือนก่อน

    Did I missed the part where she had deployed artifact on the second instance? Why did she provision the second instance?

  • @Benjamin-vv3br
    @Benjamin-vv3br ปีที่แล้ว +2

    Does anyone know the name of the extension used in 17:44 to generate a password?

    • @fuuman5
      @fuuman5 ปีที่แล้ว +2

      Bitwarden/Vaultwarden. Best selfhosted password manager ever. Using it for years. Amazing stuff. The server, the browser extension and the android app. Perfect.

  • @robertpeschke7746
    @robertpeschke7746 ปีที่แล้ว +1

    AT 20:46 it was unclear to me how you got to the initial jenkins screen? Is this in a browser?

    • @imnottellingyoumyname3050
      @imnottellingyoumyname3050 17 วันที่ผ่านมา

      Yeah same. She says "I'm just going to login" but doesn't say how, can't figure it out!

  • @MrThsmith
    @MrThsmith ปีที่แล้ว

    You failed to discuss the dockerhub connection in the last section of this video. I checked part2 and it is not aligned with part1.

  • @AbdulHannanAbdulMatheen
    @AbdulHannanAbdulMatheen ปีที่แล้ว

    👏🙂

  • @MrThsmith
    @MrThsmith ปีที่แล้ว

    I have the latest npm/node installed and keep getting npm WARN deprecated no matter what I install/uninstall.

  • @chalice2731
    @chalice2731 ปีที่แล้ว

    Can we build our own vpn system ?

  • @Web-mp7mp
    @Web-mp7mp ปีที่แล้ว +1

    @13:54 downside: this requires payment/credit card for creating a linode account !!!

    • @yashaswitiwari9047
      @yashaswitiwari9047 11 หลายเดือนก่อน

      what did you do? any free substitute?

  • @mrrishiraj88
    @mrrishiraj88 ปีที่แล้ว

    Gteat Thanks

  • @zolongOne
    @zolongOne ปีที่แล้ว

    Does anyone know the password manager she was using?

  • @codigogo
    @codigogo ปีที่แล้ว

    What's is the name of the password gestor that she use?

  • @leninvalen123
    @leninvalen123 ปีที่แล้ว

    Thanks a lot for this, greetings ... by the way such a beautiful eyes je je

  • @jktamizhangaming8875
    @jktamizhangaming8875 ปีที่แล้ว +1

    1st view and 1st like

  • @ngohcollinsjr9484
    @ngohcollinsjr9484 ปีที่แล้ว +2

    What are the biggest problems using Jenkins?

  • @prezlamen
    @prezlamen 6 หลายเดือนก่อน

    What on Earth is problem for using bigger fonts? Some of us are vision impaired and we also need to watch and educate we cant see small fonts,every tutorial should be recorded with zoomed UI

  • @sajidurrahman7903
    @sajidurrahman7903 6 หลายเดือนก่อน +8

    It's a typically CI/CD scam tutorial where the tutor smartly frauds the CD part😄. Deploying to dockerhub is not deployment. Deployment step should let your code reach to the server(s). What you are doing is "publishing a container" to dockerhub.

  • @Alex-hr2df
    @Alex-hr2df 6 หลายเดือนก่อน

    Thank goodness for 2x play speed

  • @QueenNSim
    @QueenNSim ปีที่แล้ว

    First!

  • @Androidify767
    @Androidify767 ปีที่แล้ว

    Second 🌚

  • @hariranormal5584
    @hariranormal5584 ปีที่แล้ว

    ahh yes, Ol' Man Jenkins'

  • @nossaamortobased9663
    @nossaamortobased9663 ปีที่แล้ว

    Up

  • @fabienc5118
    @fabienc5118 6 หลายเดือนก่อน

    Linode doesn't seem to have that free for starters offer anymore.

  • @saintkredo7673
    @saintkredo7673 ปีที่แล้ว

    Ну такое себе.. реклама облачных решений..

  • @anonymous_anonymity
    @anonymous_anonymity ปีที่แล้ว

    Good tutorial. But demonstrating how to enter username and password was seriously unnecessary, unless you wanted to humiliate your viewers.

  • @Festivejelly
    @Festivejelly ปีที่แล้ว

    Presentation skills good do with some work tbh. Content is good but the delivery is a bit stale. Sounds like shes bored.

  • @mhalton
    @mhalton ปีที่แล้ว

    Very basic stuff.

  • @ahmadbodayr7203
    @ahmadbodayr7203 ปีที่แล้ว

    Read about islam people❤🌹

  • @olumayowaakinkuehinmi5679
    @olumayowaakinkuehinmi5679 ปีที่แล้ว +28

    Freecodecamp never disappoints.