Reading Time: 2 minutes
TL;DR Because of a known bug in Docker 17.06 that impacts image
building, Codeship Pro will be updated once 17.06.1 is released and
the bug is fixed.
Keeping Codeship Pro equipped the latest version of Docker is really important to the team here at Codeship, and an important aspect of the Pro build platform. We’re committed to keeping the Codeship Pro build machines on the latest Docker Community Edition release, which ships every month with rich new features that you’ve come to expect from Docker.
But one of the hard parts about being on the “edge” release channel is that, sometimes, there are bugs in the latest version. Docker has a pretty robust release process that includes multiple release candidates, but ultimately, there’s no perfect process to be absolutely certain that nothing breaks (but having great automated testing and CI/CD definitely helps).
Docker 17.06 has a known issue that impacts image building, specifically the behavior of the ADD instruction. The
ADD instruction is used for adding files to your image, either from a remote or local source. If a local file is compressed, it will automatically unpack it. However, it shouldn’t automatically unpack tarred files from a remote source. The bug is pretty small — remote tarred files are now decompressed — but it can have the effect of preventing your image from building successfully should you rely on the fact that the remote tar file is not unpacked during the image build process.
Docker ProTip: If you’re using ADD to copy non-compressed, non-remote files in your Dockerfile, please use COPY instead!
Luckily, an issue has been opened for this and it’s already been fixed, but the fix won’t be released until 17.06.1. In our minds, updating to 17.06 right now would be knowingly breaking builds for some of our users, something we’re definitely not okay with.
We’ve found ourselves in similar situations with other languages, packages, and frameworks in our developer toolset. At Codeship, we treat the fact that users have entrusted us with their automated testing and deployments as a serious responsibility. Sometimes this means making a tough call to hold off on updating a certain package or tool to make sure that we don’t interrupt tests and deployments for our users.
We expect the release of 17.06.1 to happen soon (you can keep track for yourself on the Docker CE release page. In the meantime, Codeship Pro builds will continue to run with 17.05, which gives you access to features like multi-stage builds and using build arguments in your Dockerfiles