در این مثال یک برنامه ی C نوشته و با استفاده از تصویر scratch آن را داکرایز می کنیم. هدف این مثال تنها این است که با ساده ترین نوع و سبک ترین تصویر ممکن آشنا شوید و اگر ابزار کامپایل زبان C را روی سیستم خود ندارید تنها این مثال را بررسی کنید و اگر خدایی نکرده در آینده نیاز به داکرایز کردن برنامه ای به زبان های نزدیک به زبان ماشین داشتید، سعی کنید این مثال را خودتان انجام دهید.
1- ابتدا تصویر scratch را دریافت کنید:
docker pull scratch
در خروجی باید پیغام خطایی زیر را دریافت کنید:
Using default tag: latest
Error response from daemon: 'scratch' is a reserved name
2- حالا یک فایل به نام main.c ایجاد کنید.
3- درون این فایل بنویسید:
#include <stdio.h>
int main()
{
int i;
for (i=1; i<=10; i++)
{
printf('%d\n', i);
}
return 0;
}
در زبان C، مفهومی به نام Indentation(مثل پایتون و در ادامه دوره فایل های yml) نداریم و انتهای هر خط و دستور با ; مشخص می شود.
4- برنامه را کامپایل کنید:
g++ -o main -static main.c
نکته:
برای تست فایل بیلد شده میتوانید دستور زیر را اجرا کنید:
./main
5- در دایرکتوری فعلی یک Dockerfile ساخته و در آن بنویسید:
FROM scratch
ADD main /
CMD ["/main"]
6- تصویر را بسازید:
docker build -t scratch-c-image .
7- یک کانتینر بر اساس این تصویر ایجاد کنید:
docker run scratch-c-image
در خروجی باید اعداد 1 تا 10 را ببینید
8- با دستور docker images سایز تصویر را بررسی کنید(حدود 1 مگابایت خواهد بود!)
docker images scratch-c-image
9- با docker history لایه های تصویر را بررسی کنید:
docker history scratch-c-image
اگر در سطوح خیلی بالایی با میکروسرویس ها کار کنید ممکن است در آینده به استفاده از scratch نیاز داشته باشید. این اطلاعات را گوشه ی ذهن خود نگه دارید و بعدا در صورت نیاز دوباره به مرور این موضوع بپردازید.