Napiszmy prosty programik w C, który po prostu wyświetli na ekran napis “Hello World!”.

#include<sys/syscall.h>

const char msg[] = "Hello World!\n";

void _start(){
  syscall(SYS_write, 1, msg, sizeof(msg) - 1);
  syscall(SYS_exit, 0);
}

Skompilujmy go używając gcc i optymalizacji rozmiaru.

# gcc -static -Os -nostartfiles -fno-asynchronous-unwind-tables hello-world.c -o hello-world

W następnym kroku zbudujmy obraz na podstawie poniższego pliku Dockerfile.

FROM scratch
ADD hello-world /
CMD ["/hello-world"]

Budujemy!

docker build -t hello-world .

I to wszystko. Mamy gotowy obraz z naszą aplikacją Hello World, który zajmuje tylko 1.84kB!

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              770ca6b8f31c        5 minutes ago       1.84kB

Na koniec spróbujmy go uruchomić.

$ docker run --rm hello-world 
Hello World!

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.