`a Dockerfile + one line sh docker command` for build specified version's crystal static binary only

I compile crystal successful with interactive REPL enabled on my local laptop!

use make crystal interpreter=1 stats=1

 ╰─ $ cry version
Crystal 1.5.0-dev [0123976d8] (2022-06-09)

LLVM: 13.0.1
Default target: x86_64-pc-linux-gnu

 ╭─ 00:44  zw963 ⮀ ~/Crystal/share ⮀ ➦ ruby-3.1.0 
 ╰─ $ cry version
Crystal 1.5.0-dev [0123976d8] (2022-06-09)

LLVM: 13.0.1
Default target: x86_64-pc-linux-gnu

 ╭─ 00:44  zw963 ⮀ ~/Crystal/share ⮀ ➦ ruby-3.1.0 
 ╰─ $ cry i
icr:1:0> puts 100  
100
=> nil
icr:2:0> 
 ╰─ $ ldd ~/Crystal/bin/crystal
        linux-vdso.so.1 (0x00007ffd8c1e8000)
        libLLVM-13.so => /usr/lib/libLLVM-13.so (0x00007f98e658f000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f98e6358000)
        libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f98e62e1000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f98e61fa000)
        libevent-2.1.so.7 => /usr/lib/libevent-2.1.so.7 (0x00007f98e61a1000)
        libffi.so.8 => /usr/lib/libffi.so.8 (0x00007f98e6195000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f98e6173000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f98e5f67000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f98eec16000)
        libedit.so.0 => /usr/lib/libedit.so.0 (0x00007f98e5f2c000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f98e5f12000)
        libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f98e5e9e000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f98e5d14000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f98e5d0d000)
        libicuuc.so.71 => /usr/lib/libicuuc.so.71 (0x00007f98e5b0e000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f98e5ae4000)
        libicudata.so.71 => /usr/lib/libicudata.so.71 (0x00007f98e3ddf000)

3 Likes