So, if you are using Jekyll Docker image and you need to install any Ruby gems that require C headers, such as
raindrops in my case, which was a dependency for
unicorn, you will find yourself faced with this error:
fatal error: asm/types.h: No such file or directory
Fortunately, there is a quick fix for this. Jekyll docker image allows you to add system dependencies very easily. You just need to mention the dependent packages inside a file called
.apk at the root of your project or beside
Dockerfile. Since the docker image is based out of Alpine linux, you need to specify the correct package name as in Alpine packages.
Create a file called
.apk and add the following line to it.
Now, when you bring up your containers, it will automatically install the
linux-headers package which contains all the required header files and proceed to installing the gems successfully.