We may earn an affiliate commission when you visit our partners.
Adem Hassine

Did you know that manual deployment processes can significantly delay application releases, causing inefficiencies in even the most agile teams?

This Guided Project was created to help DevOps enthusiasts and professionals build a modern, automated CI/CD pipeline for Dockerized applications.

Read more

Did you know that manual deployment processes can significantly delay application releases, causing inefficiencies in even the most agile teams?

This Guided Project was created to help DevOps enthusiasts and professionals build a modern, automated CI/CD pipeline for Dockerized applications.

In this 1-hour long project-based course, you will learn how to build and configure Docker containers for any application, craft a CI/CD pipeline using GitHub Actions, and deploy a Dockerized application to a remote server using Docker Compose. To achieve this, you will create a production-ready CI/CD pipeline by containerizing a Spring Boot application, automating the build and push process to AWS Elastic Container Registry (ECR), and deploying the application to a cloud-hosted AWS EC2 environment.

This project is unique because it bridges theory with real-world DevOps challenges, helping you tackle common issues like slow manual deployments and ensuring operational consistency. To be successful in this project, you should be familiar with Docker, GitHub commands, and CLI. Whether you're looking to enhance your DevOps skills or solve real-world deployment inefficiencies, this project provides hands-on experience to set you apart.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Project Overview
In this 1-hour long project-based course, you will learn how to build and configure Docker containers for any application, craft a CI/CD pipeline using GitHub Actions, and deploy a Dockerized application to a remote server using Docker Compose. To achieve this, you will create a production-ready CI/CD pipeline by containerizing a Spring Boot application, automating the build and push process to AWS Elastic Container Registry (ECR), and deploying the application to a cloud-hosted AWS EC2 environment. This project is unique because it bridges theory with real-world DevOps challenges, helping you tackle common issues like slow manual deployments and ensuring operational consistency. To be successful in this project, you should be familiar with Docker, GitHub commands, and CLI. Whether you're looking to enhance your DevOps skills or solve real-world deployment inefficiencies, this project provides hands-on experience to set you apart.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Bridges theory with real-world DevOps challenges, helping learners tackle common issues like slow manual deployments and ensuring operational consistency
Requires familiarity with Docker, GitHub commands, and CLI, which may necessitate additional learning for those new to these tools
Automates the build and push process to AWS Elastic Container Registry (ECR), which is a valuable skill for deploying applications to the cloud
Deploys a Dockerized application to a cloud-hosted AWS EC2 environment, providing practical experience with cloud deployment strategies
Crafts a CI/CD pipeline using GitHub Actions, which is a modern and widely used tool for automating software development workflows
Containerizes a Spring Boot application, which is a popular framework for building Java-based web applications and microservices

Save this course

Save Build a CI/CD Pipeline with Docker: From Code to Deployment to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Build a CI/CD Pipeline with Docker: From Code to Deployment with these activities:
Review Docker Fundamentals
Reinforce your understanding of Docker concepts before diving into CI/CD pipelines. A solid foundation in Docker will make the course material easier to grasp.
Browse courses on Docker
Show steps
  • Review Docker images, containers, and networking.
  • Practice building and running simple Dockerfiles.
  • Familiarize yourself with Docker Compose basics.
Brush Up on GitHub Actions
Familiarize yourself with GitHub Actions syntax and workflows. Understanding GitHub Actions is crucial for building the CI/CD pipeline in this course.
Browse courses on Github Actions
Show steps
  • Explore GitHub Actions documentation and examples.
  • Create a simple workflow to automate a task in a GitHub repository.
  • Learn about different triggers and actions available in GitHub Actions.
Follow a Docker Compose Tutorial
Deepen your understanding of Docker Compose by following a hands-on tutorial. This will help you deploy multi-container applications more effectively.
Browse courses on Docker Compose
Show steps
  • Find a tutorial on deploying a multi-container application with Docker Compose.
  • Follow the tutorial step-by-step, paying attention to the configuration files.
  • Experiment with different Docker Compose options and settings.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Containerize a Simple Application
Practice containerizing a simple application using Docker. This will solidify your understanding of Dockerfiles and containerization best practices.
Browse courses on Docker
Show steps
  • Choose a simple application (e.g., a basic web server or API).
  • Create a Dockerfile for the application, specifying the necessary dependencies and configurations.
  • Build and run the Docker image, testing the application thoroughly.
Document Your CI/CD Pipeline
Create a document that describes the CI/CD pipeline you built in the course. This will help you retain the information and explain the process to others.
Browse courses on CI/CD
Show steps
  • Outline the different stages of the CI/CD pipeline.
  • Describe the purpose of each stage and the tools used.
  • Include diagrams and screenshots to illustrate the process.
Contribute to a Docker-related Open Source Project
Contribute to an open-source project related to Docker or containerization. This will give you valuable experience working with real-world code and collaborating with other developers.
Browse courses on Docker
Show steps
  • Find an open-source project related to Docker or containerization on GitHub.
  • Identify a bug or feature request that you can contribute to.
  • Submit a pull request with your changes, following the project's contribution guidelines.
Automate Infrastructure Provisioning with Terraform
Extend the CI/CD pipeline to automate infrastructure provisioning using Terraform. This will allow you to deploy your application to a fully automated environment.
Browse courses on Terraform
Show steps
  • Learn the basics of Terraform and Infrastructure as Code.
  • Write Terraform code to provision the necessary infrastructure for your application (e.g., EC2 instances, VPCs, security groups).
  • Integrate Terraform into your CI/CD pipeline to automate infrastructure provisioning.

Career center

Learners who complete Build a CI/CD Pipeline with Docker: From Code to Deployment will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
A DevOps Engineer is responsible for streamlining software development and deployment processes, which is directly related to what this course offers. This role involves building and maintaining CI/CD pipelines, automating infrastructure, and ensuring smooth application releases. This course provides a hands-on approach to creating a CI/CD pipeline for Dockerized applications, which is a crucial skill for a DevOps Engineer. By learning to containerize applications, automate build and push processes, and deploy to cloud environments via Docker Compose, the course sets learners up for success in managing production-ready systems. This is especially useful for those who wish to address the common problems faced in manual deployment systems, which this course addresses directly.
Cloud Engineer
Cloud Engineers manage and maintain cloud infrastructure, often using automation to deploy and manage software. This career path greatly benefits from understanding CI/CD pipelines and containerization, specifically Docker, which are the core competencies demonstrated by this course. The course lets the learner build and configure Docker containers, automate the build and push process, and deploy them to a cloud environment. A Cloud Engineer will appreciate the practical, hands-on experience this course provides, allowing them to manage applications effectively in cloud settings and address challenges such as slow deployments, which are tackled by this course's project. Completing this project will help the learner build a strong foundation for effectively managing cloud based projects.
Release Engineer
Release Engineers oversee the process of deploying software to production environments and strive for automation of this process. This role requires solid understanding of CI/CD pipelines, containerization, and deployment strategies which are all covered by this course. The project in the course demonstrates how to build a containerized application, automate using a CI/CD pipeline, and then deploy it to a cloud environment. This hands-on experience is indispensable to a Release Engineer who needs to tackle issues related to slow manual deployments and ensure stable, consistent releases. This course directly addresses the real-world DevOps challenges faced by a Release Engineer.
Software Developer
Software Developers create, test, and maintain software applications and need to understand how their code will be deployed. This course helps a Software Developer in understanding the practical aspects of deploying code using Docker and CI/CD pipelines. The course teaches how to containerize applications, automate the build and push process using GitHub Actions, and deploy those applications to a remote server. Understanding this process gives a Software Developer more power over the whole software lifecycle. Software Developers who wish to gain a better grasp of DevOps practices would find this project quite helpful, providing a hands-on approach to moving from development to deployment.
Systems Administrator
Systems Administrators are responsible for managing and maintaining computer systems, including the deployment of applications and often deal with the challenges of managing manual processes and inefficiencies. This course provides direct experience with containerization and CI/CD, which greatly benefits a Systems Administrator. Through the hands-on project, learners can build and configure Docker containers, create CI/CD pipelines with GitHub Actions, and deploy applications to remote servers. The course is particularly valuable for Systems Administrators who are dealing with slow manual deployments and ensuring operational consistency. The practical nature of this course can be very helpful in a typical systems administration role.
Infrastructure Engineer
Infrastructure Engineers design, build, and maintain the IT infrastructure necessary for software applications to run, often working with CI/CD pipelines and cloud deployments. This course provides an applied approach to building and deploying containerized applications using a CI/CD pipeline, which is directly relevant to the responsibilities of an infrastructure engineer. This course specifically focuses on building and configuring Docker containers, automating the build using GitHub Actions, and deploying to an AWS EC2 environment using Docker Compose. The skills acquired in this hands-on project are especially useful for Infrastructure Engineers who must ensure smooth consistent deployments, and who are looking to address inefficiencies in their deployment processes.
Automation Engineer
Automation Engineers focus on automating processes in various parts of software development and deployment, with CI/CD pipeline management falling directly under the purview of this role. This course offers the hands-on experience of building and configuring Docker containers for any application, crafting a CI/CD pipeline with GitHub Actions, and deploying to a remote server. An Automation Engineer who takes this course will understand how to automate the build and push process using AWS Elastic Container Registry, and deploy using Docker Compose. This course provides the practical skills needed to tackle common automation problems, specifically in regards to deployment processes.
Platform Engineer
A Platform Engineer designs and maintains the underlying platform that software applications run on, including deployment and infrastructure automation. This course can be useful as it provides experience in building and configuring Docker containers, crafting a CI/CD pipeline using GitHub Actions, and deploying applications to a cloud-hosted AWS EC2 environment. A Platform Engineer utilizes their knowledge of CI/CD pipelines and containerization to automate deployments, manage infrastructure, and streamline workflows. This course can help a Platform Engineer understand how to tackle real-world problems like slow deployments and other inefficiencies, since it directly teaches how to build a production-ready pipeline from the ground up.
Site Reliability Engineer
Site Reliability Engineers work to ensure systems are reliable, scalable, and efficient by applying software engineering principles to operations. This course offers useful hands-on experience in building and configuring Docker containers, crafting CI/CD pipelines via GitHub Actions, and deploying applications to cloud servers. A Site Reliability Engineer would find this course valuable as they routinely handle deployment, automation, and infrastructure management. The course provides the opportunity to create a production-ready CI/CD pipeline, which helps tackle issues such as slow deployments, which this course directly addresses. This course may be useful to a Site Reliability Engineer.
Technical Project Manager
Technical Project Managers oversee software development and deployment projects, needing a grasp on the technical processes involved, including CI/CD pipelines and containerization. This course may be useful because it provides practical knowledge of building Docker containers, automating processes using GitHub Actions, and deploying applications to the cloud. This understanding allows a technical project manager to better understand the challenges and solutions their team might face. While the role is not hands-on, the understanding of these processes enhances a Technical Project Manager's ability to communicate with their team. This course may be useful for a technical project manager.
Software Architect
A Software Architect designs the high-level structure of software systems, which often includes deployment strategies. This course may be useful, as the hands-on experience with Docker and CI/CD pipelines allows a Software Architect to better understand the implications of their choices on the deployment process. The course will help the architect gain insights into containerization, automated build processes, and cloud deployments. This knowledge would allow a Software Architect to address real-world deployment challenges such as slow manual steps and improve operational consistency across the organization. This course may be useful to a Software Architect.
Software Consultant
Software Consultants advise clients on IT strategies and solutions, often including DevOps practices and deployment strategies. This course may be useful as it provides hands-on experience with building and deploying Docker containers, creating automated CI/CD pipelines, and deploying to a cloud environment. This experience can help a consultant communicate with clients on practical challenges and solutions, such as slow and error-prone manual deployments. The practical knowledge gained throughout this course helps ground their advice and recommendations. This course may be useful to a Software Consultant.
Backend Developer
Backend Developers focus on building the server-side logic and databases for applications and sometimes contribute in deployment. This course may be useful because it teaches how to build and configure Docker containers for any application, craft a CI/CD pipeline using GitHub Actions, and deploy to a remote server. Although not the primary responsibility of a Backend Developer, understanding the deployment process provides them more context in how their code is finally implemented. This course may be useful to a Backend Developer who wants a better understanding of DevOps processes and improve their own development environment.
Database Administrator
Database Administrators manage and maintain databases, and they may benefit from understanding the modern deployment strategies. This course may help because It introduces containerization with Docker and shows how to manage deployments using CI/CD pipelines. While the typical work of a database administrator is in data, there is a growing need to understand deployment and automation. This course may be useful for Database Administrators who are looking to understand how applications are deployed. In particular, the ability to use Docker to manage and automate deployments may become increasingly useful.
Network Engineer
Network Engineers design, implement, and manage computer networks which interact with the deployed software. This course may be helpful because it introduces modern deployment strategies such as Docker and CI/CD pipelines. While not at the core of a Network Engineer's role, understanding how applications are deployed can help a Network Engineer better design systems that support the deployment process. The concepts taught in this course can be valuable to Network Engineers who need to understand the infrastructure through which software applications operate. Therefore, this course may be helpful to a Network Engineer.

Reading list

We haven't picked any books for this reading list yet.
Provides a comprehensive overview of continuous delivery, covering the principles, practices, and tools involved in automating the software release process. It is highly relevant to the topic of CI/CD pipelines, as it offers practical guidance on how to implement and manage a continuous delivery system.
Focuses specifically on continuous integration, which key part of the CI/CD pipeline. It covers the principles and practices of continuous integration, including version control, automated testing, and continuous build.
Provides a broader perspective on the benefits of adopting lean and DevOps practices, including CI/CD pipelines. It presents research and case studies to demonstrate how these practices can improve software delivery performance.
Covers the entire DevOps lifecycle, including CI/CD pipelines. It provides practical guidance on how to implement DevOps practices to improve software delivery performance and reliability.
Covers the cultural and organizational aspects of DevOps, including the role of CI/CD pipelines in improving collaboration and trust between development and operations teams.
Focuses on using Kubernetes to implement CI/CD pipelines for cloud-native applications. It covers the principles of CI/CD, as well as practical guidance on how to use Kubernetes tools to automate the software release process.
Provides a practical guide to using Jenkins to implement CI/CD pipelines. It covers the principles of CI/CD, as well as practical guidance on how to use Jenkins to automate the software release process.
Focuses on using Python to implement CI/CD pipelines for machine learning projects. It covers the principles of CI/CD, as well as practical guidance on how to use Python to automate the machine learning pipeline.
Collection of best practices for using Docker. It covers a wide range of topics, from security to performance. It is an excellent resource for anyone who wants to learn more about Docker.
Provides a hands-on approach to learning Docker. It covers a wide range of topics, from setting up a Docker environment to deploying applications in production. It is ideal for anyone who wants to get started with Docker quickly.
Collection of recipes that show you how to solve common problems with Docker. It covers a wide range of topics, from building and running containers to deploying applications in production. It is an excellent resource for anyone who wants to learn more about Docker.
Great introduction to Docker for developers. It covers the basics of Docker, as well as how to use it to build and deploy applications. It is ideal for anyone who wants to get started with Docker quickly.
Great introduction to Docker for DevOps engineers. It covers the basics of Docker, as well as how to use it to build and deploy applications in a DevOps environment. It is ideal for anyone who wants to get started with Docker quickly.
Great introduction to Docker for cloud developers. It covers the basics of Docker, as well as how to use it to build and deploy applications in the cloud. It is ideal for anyone who wants to get started with Docker quickly.
Collection of recipes that show you how to solve common problems with Docker. It covers a wide range of topics, from building and running containers to deploying applications in production. It is an excellent resource for anyone who wants to learn more about Docker.
Comprehensive guide to Docker. It covers everything from the basics to advanced topics like Docker Swarm and Kubernetes. It is perfect for anyone who wants to learn more about Docker and how to use it to build and deploy applications.
A beginner-friendly introduction to GitHub Actions, covering the basics of creating and automating workflows. Suitable for those new to CI/CD or who want to explore GitHub Actions.
A follow-up to the "GitHub Actions Cookbook", this book dives deeper into advanced topics such as creating custom actions, working with secrets, and troubleshooting complex workflows.
A practical guide to implementing real-world continuous delivery pipelines using GitHub Actions. It provides end-to-end examples and case studies to help readers succeed.
Beginner-friendly guide to using Docker Compose to build, run, and manage multi-container Docker applications.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser