Develop Go applications with Docker using these containerization steps, best practices, optimization tips, and more.
go
How to Rapidly Build Multi-Architecture Images with Buildx
Successfully running your container images on a variety of CPU architectures can be tricky. For example, you might want to build your IoT application — running on an arm64 device like the Raspberry Pi — from a specific base image. However, Docker images typically...
Deploying Web Applications Quicker and Easier with Caddy 2
Deploying web apps can be tough, even with leading server technologies. Learn how you can use Caddy 2 and Docker simplify this process.
Containerize Your Go Developer Environment – Part 3
In this series of blog posts, we show how to put in place an optimized containerized Go development environment. In part 1, we explained how to start a containerized development environment for local Go development, building an example CLI tool for different...
Containerize Your Go Developer Environment – Part 2
This is the second part in a series of posts where we show how to use Docker to define your Go development environment in code. The goal of this is to make sure that you, your team, and the CI are all using the same environment. In part 1, we explained how to start a...
Containerize Your Go Developer Environment – Part 1
When joining a development team, it takes some time to become productive. This is usually a combination of learning the code base and getting your environment setup. Often there will be an onboarding document of some sort for setting up your environment but in my...
Write Maintainable Integration Tests with Docker
The popularity of microservices and the use of third-party services for non-business critical features has drastically increased the number of integrations that make up the modern application. All of these integration points require different layers of testing.
Docker + Golang = <3
This is a short collection of tips and tricks showing how Docker can be useful when working with Go code. For instance, I’ll show you how to compile Go code with different versions of the Go toolchain, how to cross-compile to a different platform (and test the...
Introducing runC: a lightweight universal container runtime
Spinning Out Docker’s Plumbing: Part 1: Introducing runC On Infrastructure Plumbing To build a platform like Docker you need a lot of infrastructure plumbing; in fact over the past two years even though our code base has grown to tens of thousands of lines of code;...