Program details
Name: Dockerfile: from start to optimized
Date/time: Wednesday, September 27, 2023, 2:05 PM - 2:50 PM Pacific Time
Do you want to learn about how to write a Dockerfile and then to optimize it? This talk is for you! After this talk you’ll have a good understanding of what Dockerfile instructions do and some patterns for optimizing your Dockerfile for quicker builds.
The talk starts out with a basic HTTP server, written in Go, and no Dockerfile. By the end of the presentation, you will have an optimized Dockerfile for building, and running, the application.
The outline for the talk is as follows:
1. Introduction and overview of the existing application.
2. Introduction to Dockerfiles, what they are, what they help you achieve.
3. Creating a simple Dockerfile that builds and runs our application as a container image.
4. Describing image layers, layer cache, and how we can edit our Dockerfile to improve build speed.
5. Decoupling app build and runtime, using multi-stage builds, to help reduce the size of the final image.
6. Showing how to parallelize build steps.
7. Adding cache mounts and bind mounts to avoid copying and re-downloading dependencies unnecessarily.
8. Showing how you can use build arguments to allow for build-time variables to be used in the build.
9. Showing how you can use Dockerfile to run application tests in a reproducible way across environments.
10. Adding multi-platform support to build the application for multiple different architectures.
After the talk, you will have a better understanding of modern capabilities that Docker Build provides, best practices, and common patterns. You will have a solid foundation and being better equipped to make the most of the available features. You will be able to craft better Dockerfiles, and have an easier time understanding advanced uses of Docker when you encounter them.