Need help with injecto?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

joshwget
208 Stars 4 Forks 6 Commits 2 Opened issues

Description

Debug `FROM scratch` containers by injecting contents of another image

Services available

!
?

Need anything else?

Contributors list

# 66,542
Go
Raspber...
JavaScr...
Shell
6 commits

injecto

injecto dynamically transfers the contents of an image into a running container, regardless of the base image of the running container.

Imagine a scenario where you're running a

FROM scratch
image but want to exec into the container for debugging purposes. Using injecto you could inject the contents of Alpine or any other base image into the container and then have access to its shell and package manager.

Usage

injecto can be run as either a standalone binary or via Docker.

injecto  
docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp joshwget/injecto  

Example

First, let's run a container built from a

FROM scratch
image.
joshwget/sleeper
only contains a simple Go binary that spins forever.
> docker run -d joshwget/sleeper /sleeper
79f7232e5f30

Trying to exec into this container will result in an error because the base image contains no shell.

> docker exec -it 79f7232e5f30 sh
exec: \"sh\": executable file not found in $PATH

Now let's use injecto to inject Alpine.

> docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp joshwget/injecto alpine 79f7232e5f30

If you try to exec again, you'll be in a shell!

> docker exec -it 79f7232e5f30 sh
/ #

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.