Alpine image with Crystal installed to build statically-linked applications
1.5K
Alpine image with Crystal installed alongside sufficient packages to build statically-linked Crystal applications for easy deployment and distribution.
Each tag links to the relevant Dockerfile.
| Tag | Crystal version | Alpine version |
|---|---|---|
latest | 0.31.0-r0 | v3.10 |
0.31 | 0.31.0-r0 | v3.10 |
0.30 | 0.30.1-r1 | v3.10 |
0.29 | 0.29.0-r0 | v3.10 |
0.27 | 0.27.0-r0 | v3.9 |
For the purposes of these instructions, your application's source code is assumed to be in ./src with the main entry point (or target) in ./src/app.cr.
Add this hack to your main application file to allow you to build a statically-linked executable:
echo '# prevents segfault during static linking on Alpine, ignored otherwise
{% if flag?(:static) %}
require "llvm/lib_llvm"
require "llvm/enums"
{% end %}' >> src/app.cr
To compile the application for release:
docker run --rm --user $(id -u) --env UID=$(id -u) --env GID=$(id -g) -it -v $PWD:/app -w /app pgeraghty/alpine-crystal:latest crystal build --static --release --no-debug src/app.cr
This will build a statically-linked app binary in the current directory without symbolic debug info. The additional user flags should avoid restrictive permissions being applied to the generated file.
Content type
Image
Digest
Size
165.1 MB
Last updated
about 7 years ago
docker pull pgeraghty/alpine-crystal