DEV Community

Cover image for Using Scratch Base image provided by Docker
Deepak Patil
Deepak Patil

Posted on • Edited on

1

Using Scratch Base image provided by Docker

Building Base images in docker is not recommended but for those who are a bit interested in diving deeper in docker, this is a must-know thing. Even though the docker hub provides a huge collection of images for a variety of uses there are some cases where we would want to create something complex from SCRATCH !!!!.

That's where the Scratch base image from Docker comes in handy. There are several ways to generate base images, such as using an already-existing Linux machine or a running container, but for now, let's utilize a Docker scratch image.

To use scratch we just need to add FROM Scratch in our Dockerfiles. Yes, that's it! above this, you can add anything to configure your base image, Build it and it's ready to use.

For Example, let's create one. Create and Add the following to the Dockerfile.

FROM scratch
ADD hellofromdocker /
CMD ["/hellofromdocker"]
Enter fullscreen mode Exit fullscreen mode

That's it here hellofromdocker is a static executable that does not have any runtime or linked dependencies. Since the scratch image only contains the bare minimum of runtime and settings needed to create base images, using other executables or apps may not work.

Once the Dockerfile is done. build an image using docker.
docker build -t helloscratchimg .

Spin up a container from a newly created base image and get hello from Docker! 🤩


Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (2)

Collapse
 
dbags profile image
David Bagnara

Does the hellofromdocker executable need to be compiled for the platform that docker is running? If hellofromdocker is created from hellofromdocker.c, and I compile it on my Windows AMD64 platfrom, will the helloscratching image run on, for example, Ubuntu on ARM?

Collapse
 
deepcodr profile image
Deepak Patil • Edited

Yes, the executable needs to be compiled for the platform. You can find more information on this repository

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay