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