/dockerc

container image to single executable compiler

Primary LanguageZigGNU General Public License v3.0GPL-3.0

dockerc - compile docker images to standalone portable binaries

No more Tweet

No more docker run, no more pip install, no more npm i, just give your users executables they can run!

Usage

Install dockerc from the latest release.

# Image from docker hub
$ dockerc --image docker://oven/bun --output bun
# Image in local docker daemon storage
$ dockerc --image docker-daemon:mysherlock-image:latest --output sherlock_bin
# Specify target instruction set architecture
$ dockerc --image docker://hello-world --arch arm64 --output hello

The output binary can then be called as you would with usual binaries. You can also specify -e, and -v in the same way you would when using docker run. Networked services running inside the container can be accessed directly without having to specify -p.

Skopeo is used for loading images, for other locations refer to its documentation.

Build from source

Please note that this project uses Git submodules. If you clone this repository, you may need to run the following commands to initialize and update the submodules:

$ git submodule init
$ git submodule update

This will ensure that you download and update all relevant submodule contents. Once the submodules are properly initialized, you can proceed with the compilation instructions below.

$ zig build -Doptimize=ReleaseSafe -Dtarget=x86_64-linux-musl
$ zig build -Doptimize=ReleaseSafe -Dtarget=aarch64-linux-musl

Features