On 23 June 2017 at 18:58, Eliot Miranda <eliot.mira...@gmail.com> wrote:

> Workable?  Yes.  Fatal flaws?  None.
>

There did seem to be a fatal flaw. Metacello doesn't seem to want to run
without network access. Pre-populating the package cache with .mcz files
doesn't seem to be sufficient.

I'm sure it's possible to achieve but it was beyond my skills and patience.

I have found a reasonably comfortable compromise now though. I build my
image in two steps now. First a "base" image is built in the Jenkins
universe using Metacello and the stable versions de jour of all the
dependencies. Second the base image is imported into the Nix universe and
extended using very low-brow Smalltalk scripts to force a reload of my own
packages and setup the settings that I want.

This seems fine. The base image can be updated by Jenkins every month or
more: Just when I need to add a dependency or pull fixes to an existing
one. The derived image can then be built many times per day within the same
workflow as the rest of my application.

Just in case anybody is curious here is the Nix code that I'm using to
import the base image, add my extensions, and create a startup script that
runs the image under vncserver+ratpoison for easy remote access to the GUI:

https://github.com/studio/studio/blob/master/nixpkgs/studio/frontend/default.nix

Reply via email to