Docker Shell vs. Exec Form
Mar 22, 2021 · 5 min read
The RUN, ENTRYPOINT, and CMD, instructions all have two different forms they can be written in, and those forms change how each of those instructions behaves.
You Don't Need an Init System for Node.js in Docker
Mar 20, 2021 · 5 min read
But you do need to think about how your application handles exit signals.
Publishing Docker Images with GitHub Actions
Feb 20, 2021 · 10 min read
Publishing Docker images is a common CI/CD task, and the tight integration GitHub Actions has with GitHub repositories makes it a great tool for the job.
Publishing Docker Images with CircleCI
Feb 15, 2021 · 10 min read
Publishing Docker images is a common CI/CD task, and the flexibility CircleCI offers makes it a great tool for the job.
Linting Dockerfiles with Hadolint
Aug 10, 2020 · 3 min read
Linters don't just enforce style guidelines, they also catch potential issues. hadolint (Haskell Dockerfile Linter) is the most popular linter for Dockerfiles, and it's incredibly easy to use.
What is a Docker Digest?
Aug 9, 2020 · 7 min read
Docker tags are mutable - they can be re-published over and over - so the most specific way an image can be referenced is by its digest.
Keep Docker Base Images Updated with Renovate
Jul 30, 2020 · 6 min read
Just like with libraries used in code, keeping your Docker base images up to date is a good security practice.
Testing Docker Images with Container Structure Test
Jul 18, 2020 · 5 min read
Just because a Docker image builds successfully doesn't mean it will perform as expected. Google's container Structure Test tool helps you check images to make sure they're working as intended.
Reducing Docker Layers
Jun 29, 2020 · 6 min read
Reducing the size of your Docker images is important for a number of reasons, and while there are newer tools such as multi-stage builds, reducing the number of layers in your image may help.
Using Multi-Stage Docker Builds with Go
Jun 4, 2020 · 4 min read
Multi-stage Docker builds can greatly reduce the size of final built images, and the savings can be extreme with Go.
Tunneling a Database Connection with Docker Compose
Aug 7, 2019 · 3 min read
I recently had the need to tunnel a database connection from a local Docker container to a remote MySQL server. The AWS RDS instance is inside the same VPC as a bastion host that runs the SSH server. Rather than open the tunnel on the host machine and have the container connect through host.docker.internal I thought I'd configure it all in one place with Docker Compose.