3 ms·
I wrote that text. People were unnecessarily trying to use Docker in order to build their Zig applications and so this is a dramatic way to point out that you d
by AndyKelley 4y ago
I wrote that text. People were unnecessarily trying to use Docker in order to build their Zig applications and so this is a dramatic way to point out that you don't need to do that because you can make them statically compiled and thus run in any Linux environment. That GitHub repository is only for creating Drone CI images.
If you were going to put a Zig application into a Dockerfile you could use `FROM scratch`.
Of course you may have other uses for Docker, that's fine. This text is for people coming from e.g. Go or Python where the reflex is to unconditionally use Docker. When using Zig this should be questioned.
- mfext 4y agoInteresting, I understand now thanks to your reply and a couple others. I’ve been living in an interpreted echo system for too long (nodejs, python) I suppose, so I was looking through a runtime-focused lense where Docker shines so the word choice seemed radical. This is a cool project, thank you for taking the time to respond!
- aprdm 4y agoIsn't go statically compiled by default also..?
- _gerald_ 4y ago
- kristoff_it 4y agoGo is only statically linked when not depending on C code, if you're using CGo, you cannot get a statically linked executable with Go alone, and a lot of Go projects do depend on C code. You also lose Go's cross-compilation when using CGo. In fact, Zig is used in combination with CGo to create statically linked executables and re-enable cross-compilation: https://dev.to/kristoff/zig-makes-go-cross-compilation-just-work-29ho https://dev.to/kristoff/zig-makes-go-cross-compilation-just-... Same also applies to Rust: https://actually.fyi/posts/zig-makes-rust-cross-compilation-just-work/ https://actually.fyi/posts/zig-makes-rust-cross-compilation-... > It's still a good idea to Dockerize your apps even if they are statically compiled. If your app has C dependencies e.g. libxml2, it won't run on another system if the required C headers are missing. You clearly don't understand the meaning of statically linked nor how dynamic linking works. Spend less time concern-trolling and more learning software engineering, friend ;^)
- _gerald_ 4y ago[flagged]