Distributing your binary
The simplest form of distribution would be to add the binary we built in the previous section to the assets of the release. This would allow anyone to download and run it, assuming a binary existed for their OS/architecture combination. The binary we created in the previous section would work on any computer using the same underlying OS and architecture that it was compiled on – in this case, x86_64 Linux. Other CPU architectures/OSs, such as macOS and Windows, would need dedicated binaries.
Via Docker
Another common way to distribute your binary is by including it within a Docker image that could then be used directly. The portable nature of Crystal makes creating these images easy. We can also leverage multi-stage builds to build the binary in an image that contains all the required dependencies, but then extract it into a more minimal image for distribution. The resulting Dockerfile for this process could look like this:
FROM crystallang...