Lecture 9
Quick Announcements
- Final Project Demonstration
- Monday 12/4 7:30 - 8:45 PM
- Location: Upson 222
- Attendance of your whole team is required!
- Structure of the demo day:
- Each team will be assigned a personal table to demo your project.
- You can visit other team's table to learn about other team's projects.
- Instructors will visit each table one by one to grade your projects.
- Cookies will be provided!
Containerization Concepts
Containerization allows applications to packaged with their dependencies into standardized units called containers.
Benefits
- Portability between environments
- Ensure consistency
- Streamline deployment
Docker is a popular containerization platform. Key concepts:
- Images: Blueprint describing the environment
- Containers: Running instances of images
- Dockerfile: Defines how to build an image
With Docker we can package applications into images that can be run reliably as containers anywhere.
Docker Setup
To build a Docker image for a Node.js app:
- Create a Dockerfile
- Define base image, copy source code, specify commands
- Build image:
docker build
- Run container from image:
docker run
Deploying Containers
Platforms like Fly.io make it easy to deploy Docker containers.
To deploy on Fly.io:
- Install flyctl CLI
- Sign up and login
- Launch app with
flyctl launch
- Deploy updates with
flyctl deploy
Fly.io handles running containers on their infrastructure.
Even Further Beyond
Some further technologies:
- Redux, SWR, Axios
- GraphQL
- Nest.js
- Deno
Final Course Feedback (10% of your Grade)
Let us know your thoughts by filling out Final Project Feedback Form and Final Feedback Form by December 9 (11:59PM). These are to be released during presentation day.
Thank you!