[squeak-dev] [ANN] Squeaker: Like Docker, but for Squeak. You know, for kids.

Tony Garnock-Jones tonyg at leastfixedpoint.com
Thu Nov 18 10:50:05 UTC 2021

Heh! Yeah, it could be done from a Squeak with OSProcess loaded. (Part 
of why I picked chunks as the Squeakerfile format...)

The utility of docker containers is that they can be wired together. We 
don't have a good story for wiring together Smalltalk images yet. Weird, 

So yeah, not until there's some way of *talking* to a running image that 
doesn't involve *being inside it* will there be much use to an image 
library, or a squeaker-compose-like thing...


On 11/18/21 10:47 AM, Thiede, Christoph wrote:
> Nice idea! One could call it a bit pity that you had to write this in 
> Python rather than in Squeak itself, but it is the result tthat counts. :-)
> Next up: Squeaker Hub, squeaker-compose, and integrated CI support for 
> Squeaker images? :D
> Best,
> Christoph
> ------------------------------------------------------------------------
> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im 
> Auftrag von Tony Garnock-Jones <tonyg at leastfixedpoint.com>
> *Gesendet:* Donnerstag, 18. November 2021 09:42:23
> *An:* The general-purpose Squeak developers list
> *Betreff:* [squeak-dev] [ANN] Squeaker: Like Docker, but for Squeak. You 
> know, for kids.
> I found myself in need of a way to script the production of clean images
> customised by some sequence of Smalltalk commands. ("Cattle, not pets.")
> Presto,
> https://github.com/tonyg/squeaker <https://github.com/tonyg/squeaker>
>   From the README (https://github.com/tonyg/squeaker#readme 
> <https://github.com/tonyg/squeaker#readme>):
> ====
> It's a small program that helps in automated derivation of configured
> Smalltalk images from some fixed base image and a collection of
> Smalltalk commands. It's about 500 lines of Python, so far.
>    - Squeakerfile.st is like Dockerfile, except it contains locations to
> fetch images from plus Smalltalk expressions to derive new images.
>    - squeaker build is like docker build. It manages a cache (in
> $XDG_CACHE_HOME/squeaker, usually $HOME/.cache/squeaker on Unix) of
> downloaded artifacts, derived images, and the stages in each derivation.
>    - squeaker run is like docker run. It starts a previously-downloaded
> or -derived image in a temporary directory. (Future: support persistent
> image instances, like docker does! Easy enough.)
>    - squeaker gc is like docker system prune, roughly. It cleans out the
> Squeaker cache directory, treating tags as GC roots.
> ====
> Please try it out and let me know what you think!
> Cheers,
>     Tony

More information about the Squeak-dev mailing list