The opam repository for my Advent of Agentic Humps 2025
1# Local development Dockerfile using nixery.dev
2# Based on .tangled/workflows/build.yml configuration
3
4# Use nixery to get all the dependencies from the workflow
5FROM nixery.dev/shell/stdenv/findutils/binutils/libunwind/ncurses/opam/git/gawk/gnupatch/gnum4/gnumake/gnutar/gnused/gnugrep/diffutils/gzip/bzip2/gcc/ocaml/pkg-config
6
7# Set working directory
8WORKDIR /workspace
9
10# Copy the repository contents
11COPY . .
12
13# Ensure list-packages.sh is executable
14RUN chmod +x list-packages.sh
15
16# Initialize opam without sandboxing (as per workflow)
17RUN opam init --disable-sandboxing -a -y
18
19# Add the aoah-overlay repository
20RUN opam repository add aoah-overlay .
21
22# Install packages with tests
23# Note: This step is commented out to allow interactive development
24# Uncomment to pre-install packages in the image
25# RUN opam install --confirm-level=unsafe-yes -v --with-test $(./list-packages.sh)
26
27# Set up shell environment for interactive use
28ENV OPAM_SWITCH_PREFIX=/root/.opam/default
29ENV PATH=/root/.opam/default/bin:$PATH
30
31# Default command opens a shell for interactive development
32CMD ["/bin/sh"]