devbox-layer-cache-full (f944f81414cf03801c91c843ef2a9a91d8a3ecc5c65df331ff00d66cb58a9349)

Published 2026-07-15 10:09:24 +02:00 by L0GYKAL

Installation

docker pull forge.tala.family/l0gykal/devbox-layer-cache-full:f944f81414cf03801c91c843ef2a9a91d8a3ecc5c65df331ff00d66cb58a9349
sha256:da70329770fe9f80404d61d865f0f0a167abdfd823bf71a552e5997ef595f4b2

Image layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.version=24.04
ADD file:8c609c85109d07bf47cf268a175b3be8bbe34fc0c41d15d99b090d099f4dc837 in /
CMD ["/bin/bash"]
ENV DEBIAN_FRONTEND=noninteractive LANG=C.UTF-8 LC_ALL=C.UTF-8 TZ=UTC
/bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates curl wget gnupg lsb-release git openssh-server openssh-client sudo zsh tmux mosh build-essential pkg-config python3 python3-pip python3-venv python3-yaml pipx jq ripgrep fzf bat fd-find tree eza zoxide direnv ncurses-term less locales tini unzip && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/*
/bin/sh -c ln -sf /usr/bin/batcat /usr/local/bin/bat && ln -sf /usr/bin/fdfind /usr/local/bin/fd
ENV NVIM_VERSION=v0.12.2
ENV NVIM_SHA256_AMD64=31cf85945cb600d96cdf69f88bc68bec814acbff50863c5546adef3a1bcef260
ENV NVIM_SHA256_ARM64=f697d4e4582b6e4b5c3c26e76e06ce26efa08ba1768e03fd2733fcc422bb0490
/bin/sh -c set -eu; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) NVIM_ASSET="nvim-linux-x86_64.tar.gz"; NVIM_DIR="nvim-linux-x86_64"; WANT_SHA="${NVIM_SHA256_AMD64}" ;; arm64) NVIM_ASSET="nvim-linux-arm64.tar.gz"; NVIM_DIR="nvim-linux-arm64"; WANT_SHA="${NVIM_SHA256_ARM64}" ;; *) echo "ERROR: unsupported arch '${ARCH}' for nvim install" >&2; exit 1 ;; esac; curl -fsSL "https://github.com/neovim/neovim/releases/download/${NVIM_VERSION}/${NVIM_ASSET}" -o /tmp/nvim.tgz; GOT_SHA="$(sha256sum /tmp/nvim.tgz | awk '{print $1}')"; if [ -z "${WANT_SHA}" ]; then echo "WARN: NVIM_SHA256_${ARCH} value empty — got ${GOT_SHA}. Pin it before next build." >&2; elif [ "${GOT_SHA}" != "${WANT_SHA}" ]; then echo "ERROR: nvim sha256 mismatch: got ${GOT_SHA} want ${WANT_SHA}" >&2; exit 1; fi; tar -C /opt -xzf /tmp/nvim.tgz; ln -sf "/opt/${NVIM_DIR}/bin/nvim" /usr/local/bin/nvim; rm /tmp/nvim.tgz
/bin/sh -c curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list && apt-get update && apt-get install -y --no-install-recommends gh && rm -rf /var/lib/apt/lists/*
ENV GH_DASH_VERSION=4.23.2
ENV GH_DASH_SHA256_AMD64=fed6b0ae90ce2c32ac029c2ce891cd2ad1a1cdd9a12d21fb14ed25d18dae658b
ENV GH_DASH_SHA256_ARM64=19037ce8ef2997f29ccba96c8309b47554a4f13bed2492c3997aeef2fdbaa136
/bin/sh -c set -eu; arch="$(dpkg --print-architecture)"; case "${arch}" in amd64) GHARCH=amd64; WANT_SHA="${GH_DASH_SHA256_AMD64}" ;; arm64) GHARCH=arm64; WANT_SHA="${GH_DASH_SHA256_ARM64}" ;; *) echo "unsupported arch ${arch}" >&2; exit 1 ;; esac; curl -fsSL "https://github.com/dlvhdr/gh-dash/releases/download/v${GH_DASH_VERSION}/gh-dash_v${GH_DASH_VERSION}_linux-${GHARCH}" -o /tmp/gh-dash; GOT_SHA="$(sha256sum /tmp/gh-dash | awk '{print $1}')"; if [ -z "${WANT_SHA}" ]; then echo "WARN: GH_DASH_SHA256_${arch} value empty — got ${GOT_SHA}. Pin it before next build." >&2; elif [ "${GOT_SHA}" != "${WANT_SHA}" ]; then echo "ERROR: gh-dash sha256 mismatch: got ${GOT_SHA} want ${WANT_SHA}" >&2; exit 1; fi; install -m0755 /tmp/gh-dash /usr/local/bin/gh-dash; rm /tmp/gh-dash
ENV TEA_VERSION=0.14.1
ENV TEA_SHA256_AMD64=3cf7c5d1c20808c9ba2efb9ac125cee10d969daf398e653ea2b33cde201ea317
ENV TEA_SHA256_ARM64=0947b07f15fd2dde1768e0eb8c8619f280f45fb08b8895a11b64f6ba94b13dbf
/bin/sh -c set -eu; arch="$(dpkg --print-architecture)"; case "${arch}" in amd64) TEAARCH=amd64; WANT_SHA="${TEA_SHA256_AMD64}" ;; arm64) TEAARCH=arm64; WANT_SHA="${TEA_SHA256_ARM64}" ;; *) echo "unsupported arch ${arch}" >&2; exit 1 ;; esac; curl -fsSL "https://gitea.com/gitea/tea/releases/download/v${TEA_VERSION}/tea-${TEA_VERSION}-linux-${TEAARCH}" -o /tmp/tea; GOT_SHA="$(sha256sum /tmp/tea | awk '{print $1}')"; if [ -z "${WANT_SHA}" ]; then echo "WARN: TEA_SHA256_${arch} value empty — got ${GOT_SHA}. Pin it before next build." >&2; elif [ "${GOT_SHA}" != "${WANT_SHA}" ]; then echo "ERROR: tea sha256 mismatch: got ${GOT_SHA} want ${WANT_SHA}" >&2; exit 1; fi; install -m0755 /tmp/tea /usr/local/bin/tea; rm /tmp/tea
ENV RUST_VERSION=1.96.0
ENV RUSTUP_HOME=/opt/rustup CARGO_HOME=/opt/cargo
ENV PATH="/opt/cargo/bin:${PATH}"
/bin/sh -c curl -fsSL --proto '=https' --tlsv1.2 https://sh.rustup.rs | bash -s -- -y --no-modify-path --default-toolchain "${RUST_VERSION}" --profile minimal && chmod -R 1777 /opt/cargo && ln -sf /opt/cargo/bin/cargo /usr/local/bin/cargo && ln -sf /opt/cargo/bin/rustc /usr/local/bin/rustc && /usr/local/bin/rustc --version && /usr/local/bin/cargo --version
/bin/sh -c cargo install worktrunk
ENV BUN_INSTALL_SH_SHA256=bab8acfb046aac8c72407bdcce903957665d655d7acaa3e11c7c4616beae68dd
/bin/sh -c set -eu; curl -fsSL https://bun.sh/install -o /tmp/bun-install.sh; GOT_SHA="$(sha256sum /tmp/bun-install.sh | awk '{print $1}')"; if [ -z "${BUN_INSTALL_SH_SHA256}" ]; then echo "WARN: BUN_INSTALL_SH_SHA256 value empty — got ${GOT_SHA}. Pin it." >&2; elif [ "${GOT_SHA}" != "${BUN_INSTALL_SH_SHA256}" ]; then echo "ERROR: bun install-script sha256 mismatch: got ${GOT_SHA} want ${BUN_INSTALL_SH_SHA256}" >&2; exit 1; fi; env BUN_INSTALL=/opt/bun bash /tmp/bun-install.sh; rm /tmp/bun-install.sh; ln -sf /opt/bun/bin/bun /usr/local/bin/bun; ln -sf /opt/bun/bin/bun /usr/local/bin/bunx; ln -sf /opt/bun/bin/bun /usr/local/bin/node
/bin/sh -c install -d /etc/skel.d/.local/bin
COPY file:0e217169c0a5b1b366957554b40ae0473aef4cdba56880261bb60d25ba931a98 in /etc/skel.d/.local/bin/opencode-acp-meridian
COPY file:df84294a9a854d0cf35ffeda93e2077851ba5fd5de18d527e00590be9e9c1342 in /etc/skel.d/.local/bin/claude-acp-direct
COPY file:1322c1632dda26c2f94561b3c867d6889a038ae5e3d471e972c7ed8fc1baae11 in /etc/skel.d/.local/bin/opencode
/bin/sh -c chmod 0755 /etc/skel.d/.local/bin/opencode-acp-meridian /etc/skel.d/.local/bin/claude-acp-direct /etc/skel.d/.local/bin/opencode
ENV MISE_INSTALL_SH_SHA256=f9dab663d963578f0fcae36038ddb1a8444bd3b9676f30ec823cf27370687b05
/bin/sh -c set -eu; curl -fsSL https://mise.run -o /tmp/mise-install.sh; GOT_SHA="$(sha256sum /tmp/mise-install.sh | awk '{print $1}')"; if [ -z "${MISE_INSTALL_SH_SHA256}" ]; then echo "WARN: MISE_INSTALL_SH_SHA256 value empty — got ${GOT_SHA}. Pin it." >&2; elif [ "${GOT_SHA}" != "${MISE_INSTALL_SH_SHA256}" ]; then echo "ERROR: mise install-script sha256 mismatch: got ${GOT_SHA} want ${MISE_INSTALL_SH_SHA256}" >&2; exit 1; fi; env MISE_INSTALL_PATH=/usr/local/bin/mise sh /tmp/mise-install.sh; rm /tmp/mise-install.sh
ENV OPENCODE_VERSION=1.15.0
/bin/sh -c install -d /opt/opencode-bin && curl -fsSL https://opencode.ai/install | env BIN_DIR=/opt/opencode-bin bash -s -- ${OPENCODE_VERSION:+--version "${OPENCODE_VERSION}"} && if [ ! -x /opt/opencode-bin/opencode ]; then FOUND="$(find /root /opt -name opencode -type f -executable 2>/dev/null | head -1)"; [ -n "$FOUND" ] || { echo "ERROR: opencode binary not found post-install" >&2; exit 1; }; cp "$FOUND" /opt/opencode-bin/opencode; fi && chmod 0755 /opt/opencode-bin/opencode && ln -sf /opt/opencode-bin/opencode /usr/local/bin/opencode && /usr/local/bin/opencode --version
ENV BUN_INSTALL=/opt/bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
/bin/sh -c /opt/bun/bin/bun install -g @mariozechner/pi-web-ui && ln -sf /opt/bun/bin/pi-web-ui /usr/local/bin/pi-web-ui 2>/dev/null || true && /opt/bun/bin/pi-web-ui --version 2>&1 | head -1 || true
ENV CARAPACE_VERSION=1.4.0
/bin/sh -c curl -fsSL "https://github.com/carapace-sh/carapace-bin/releases/download/v${CARAPACE_VERSION}/carapace-bin_${CARAPACE_VERSION}_linux_amd64.tar.gz" -o /tmp/carapace.tgz && tar -C /tmp -xzf /tmp/carapace.tgz carapace && install -m0755 /tmp/carapace /usr/local/bin/carapace && rm -f /tmp/carapace.tgz /tmp/carapace
ENV ATUIN_VERSION=18.6.1
/bin/sh -c curl -fsSL "https://github.com/atuinsh/atuin/releases/download/v${ATUIN_VERSION}/atuin-x86_64-unknown-linux-gnu.tar.gz" -o /tmp/atuin.tgz && tar -C /tmp -xzf /tmp/atuin.tgz && install -m0755 /tmp/atuin-*linux-gnu/atuin /usr/local/bin/atuin && rm -rf /tmp/atuin.tgz /tmp/atuin-*linux-gnu
ENV JUST_VERSION=1.40.0
/bin/sh -c curl -fsSL "https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-x86_64-unknown-linux-musl.tar.gz" -o /tmp/just.tgz && tar -C /tmp -xzf /tmp/just.tgz just && install -m0755 /tmp/just /usr/local/bin/just && rm -f /tmp/just.tgz /tmp/just
ENV CRANE_VERSION=0.20.2
/bin/sh -c curl -fsSL "https://github.com/google/go-containerregistry/releases/download/v${CRANE_VERSION}/go-containerregistry_Linux_x86_64.tar.gz" -o /tmp/crane.tgz && tar -C /tmp -xzf /tmp/crane.tgz crane && install -m0755 /tmp/crane /usr/local/bin/crane && rm -f /tmp/crane.tgz /tmp/crane
/bin/sh -c curl -fsSL https://starship.rs/install.sh | sh -s -- --yes --bin-dir /usr/local/bin
ENV MUTAGEN_VERSION=0.18.1
/bin/sh -c install -d "/etc/skel.d/.mutagen/agents/${MUTAGEN_VERSION}" /tmp/mutagen-extract && curl -fsSL "https://github.com/mutagen-io/mutagen/releases/download/v${MUTAGEN_VERSION}/mutagen_linux_amd64_v${MUTAGEN_VERSION}.tar.gz" -o /tmp/mutagen.tgz && tar -C /tmp/mutagen-extract -xzf /tmp/mutagen.tgz mutagen-agents.tar.gz && tar -C /tmp/mutagen-extract -xzf /tmp/mutagen-extract/mutagen-agents.tar.gz linux_amd64 && install -m0755 /tmp/mutagen-extract/linux_amd64 "/etc/skel.d/.mutagen/agents/${MUTAGEN_VERSION}/linux_amd64" && rm -rf /tmp/mutagen.tgz /tmp/mutagen-extract && chmod -R 0755 /etc/skel.d/.mutagen
COPY file:7ff778eaed6ff5a97e0a5709e373cf7e56bef8bfe5509af7eaa60e75c130a8ce in /usr/local/bin/osc52-copy
/bin/sh -c chmod 0755 /usr/local/bin/osc52-copy && ln -sf osc52-copy /usr/local/bin/xsel && ln -sf osc52-copy /usr/local/bin/xclip && ln -sf osc52-copy /usr/local/bin/wl-copy
ENV MATTPOCOCK_SKILLS_COMMIT=main
ENV KARPATHY_SKILLS_COMMIT=main
ENV VISUAL_EXPLAINER_COMMIT=8f1d0e3
/bin/sh -c mkdir -p /opt/skills && git clone https://github.com/mattpocock/skills /opt/skills/mattpocock && (cd /opt/skills/mattpocock && git checkout "${MATTPOCOCK_SKILLS_COMMIT}") && git clone https://github.com/forrestchang/andrej-karpathy-skills /opt/skills/karpathy && (cd /opt/skills/karpathy && git checkout "${KARPATHY_SKILLS_COMMIT}") && git clone https://github.com/nicobailon/visual-explainer /opt/skills/visual-explainer-src && (cd /opt/skills/visual-explainer-src && git checkout "${VISUAL_EXPLAINER_COMMIT}") && cp -r /opt/skills/visual-explainer-src/plugins/visual-explainer /opt/skills/visual-explainer && rm -rf /opt/skills/visual-explainer-src && rm -rf /opt/skills/*/.git
ENV DEV_UID=1000
ENV DEV_GID=1000
COPY file:fabf6ee7eea75588ef83ccda6608ed1401abec4f084a42dd9457f99b1c764dab in /etc/sudoers.d/dev
/bin/sh -c set -eu; if existing=$(getent passwd ${DEV_UID}); then existing_user=$(echo "$existing" | cut -d: -f1); if [ "$existing_user" != "ubuntu" ]; then echo "ERROR: uid ${DEV_UID} held by '$existing_user', expected 'ubuntu' or empty" >&2; exit 1; fi; userdel -r "$existing_user"; fi; if getent group ubuntu >/dev/null; then groupdel ubuntu; fi; groupadd -g ${DEV_GID} dev; useradd -m -u ${DEV_UID} -g ${DEV_GID} -s /bin/zsh dev; usermod -p '*' dev; chmod 0440 /etc/sudoers.d/dev; visudo -cf /etc/sudoers.d/dev
/bin/sh -c chown dev:dev /opt/opencode-bin/opencode
/bin/sh -c mkdir -p /var/run/sshd /home/dev/.ssh && sed -ri -e 's/^#?PasswordAuthentication\s+.*/PasswordAuthentication no/' -e 's/^#?PermitRootLogin\s+.*/PermitRootLogin no/' -e 's/^#?ChallengeResponseAuthentication\s+.*/ChallengeResponseAuthentication no/' -e 's/^#?KbdInteractiveAuthentication\s+.*/KbdInteractiveAuthentication no/' -e 's/^#?UsePAM\s+.*/UsePAM no/' /etc/ssh/sshd_config && echo "AllowUsers dev" >> /etc/ssh/sshd_config && echo "AcceptEnv COLORTERM TERM_PROGRAM TERM_PROGRAM_VERSION" >> /etc/ssh/sshd_config && chown -R dev:dev /home/dev/.ssh && chmod 0700 /home/dev/.ssh
/bin/sh -c install -d /etc/skel.d/.config/opencode && install -d /etc/skel.d/.local/share/opencode && install -d /etc/skel.d/.claude && install -d /etc/skel.d/.cache
COPY file:1891145f276e1bfb84bf94bbda37ed32a19e0fb7ff1f8998c0af57ca6879bf92 in /etc/skel.d/.config/opencode/opencode.json
COPY file:7f3f2424d0a7f48da9a1540d9084edeef29b3f8a2bd39a10920f8a995819eb80 in /etc/skel.d/.config/opencode/package.json
/bin/sh -c install -d /usr/local/share/opencode-plugins
COPY file:695b732b8123646e51ec4b56a645349177ac3561c177c58ee1a72eddcfc1d3c3 in /usr/local/share/opencode-plugins/wellbeing.ts
/bin/sh -c chmod 0644 /usr/local/share/opencode-plugins/wellbeing.ts
COPY file:afeda8c31a0e6ef769304ccdfd7f2e880172687d66ab864340c4d88cc371eb06 in /usr/local/share/opencode-plugins/session-budget-handoff.ts
/bin/sh -c chmod 0644 /usr/local/share/opencode-plugins/session-budget-handoff.ts
/bin/sh -c install -d /usr/local/share/devcontainer
COPY file:2313db4ea6e6c938b5f0dbc4a3cfc8530383dd82835f1240dc966d3478e4d56c in /usr/local/share/devcontainer/HANDOFF.md
/bin/sh -c chmod 0644 /usr/local/share/devcontainer/HANDOFF.md
/bin/sh -c install -d /etc/skel.d/.config/meridian && cd /etc/skel.d/.config/meridian && echo '{}' > package.json && /opt/bun/bin/bun add @rynfar/meridian-plugin-opencode-scrub @rynfar/meridian-plugin-pi-scrub
COPY file:d3c95105970c64dded7d29c16595889963534a675e9451e42907880ba4f1cad0 in /etc/skel.d/.config/meridian/plugins.json
/bin/sh -c chmod 0644 /etc/skel.d/.config/meridian/plugins.json
/bin/sh -c cd /etc/skel.d/.config/opencode && /opt/bun/bin/bun install --no-summary && chmod 0644 opencode.json package.json
ENV MATTPOCOCK_SKILLS_REF=main
/bin/sh -c curl -fsSL "https://codeload.github.com/mattpocock/skills/tar.gz/${MATTPOCOCK_SKILLS_REF}" | tar -xz -C /tmp && install -d /etc/skel.d/.claude/skills && install -d /etc/skel.d/.config/opencode/skills && cp -r /tmp/skills-*/skills/. /etc/skel.d/.claude/skills/ && cp -r /tmp/skills-*/skills/. /etc/skel.d/.config/opencode/skills/ && rm -rf /tmp/skills-* && find /etc/skel.d/.claude/skills /etc/skel.d/.config/opencode/skills -type f -exec chmod 0644 {} \; && find /etc/skel.d/.claude/skills /etc/skel.d/.config/opencode/skills -type d -exec chmod 0755 {} \;
/bin/sh -c install -d /usr/local/share/opencode-skills
COPY dir:741f0c2be4eabdf1973dbb08a1c0ca0bd9940e8baa7dde3f6f2ab2da91286091 in /usr/local/share/opencode-skills
/bin/sh -c set -eu; for tree in /etc/skel.d/.claude/skills /etc/skel.d/.config/opencode/skills; do install -d "$tree/engineering" "$tree/in-progress" "$tree/productivity"; for s in ask-matt codebase-design domain-modeling grill-with-docs implement setup-matt-pocock-skills to-issues to-prd triage; do rm -rf "$tree/engineering/$s"; cp -r "/usr/local/share/opencode-skills/$s" "$tree/engineering/$s"; done; rm -rf "$tree/in-progress/review"; cp -r /usr/local/share/opencode-skills/review "$tree/in-progress/review"; rm -rf "$tree/productivity/handoff"; cp -r /usr/local/share/opencode-skills/handoff "$tree/productivity/handoff"; done; find /usr/local/share/opencode-skills -type f -exec chmod 0644 {} \; ; find /usr/local/share/opencode-skills -type d -exec chmod 0755 {} \; ; find /etc/skel.d/.claude/skills /etc/skel.d/.config/opencode/skills -type f -exec chmod 0644 {} \; ; find /etc/skel.d/.claude/skills /etc/skel.d/.config/opencode/skills -type d -exec chmod 0755 {} \;
COPY file:394e121f01322a34d0184537fd1339330fdf9de069b808da7ab0996b1fb185bd in /etc/skel.d/.zshrc
/bin/sh -c SHELL=/bin/zsh HOME=/etc/skel.d wt config shell install -y
COPY file:69d1b93c0f4aff3b15a2144866003fe08971ec411df70b06c4b7d56d64939f67 in /etc/skel.d/.bunfig.toml
/bin/sh -c chmod 0644 /etc/skel.d/.bunfig.toml
COPY file:d1b14e64c301dcfb98efbd317f89bd8af799d4a22f4263b5770e4ec88e64abd1 in /usr/local/bin/opencodecl
/bin/sh -c chmod 0755 /usr/local/bin/opencodecl
COPY file:d120e1e55a42bcc359d545161aa7fe2d84605e31f5ccb0100241883760bc8557 in /etc/skel.d/.zshenv
COPY file:fb338a858c61fea0c1ccf512111377ce19bdcd7a5c722704c33b8ed8045ea102 in /etc/ssh/ssh_known_hosts
/bin/sh -c chmod 0644 /etc/ssh/ssh_known_hosts
COPY file:a26ba9b038721232ee1b1089b37ffd3fef98e78455fa25f15793056917e0cbc7 in /etc/skel.d/.config/starship.toml
/bin/sh -c install -d /etc/skel.d/.config && chmod 0644 /etc/skel.d/.config/starship.toml
COPY file:aca2158e355c27d272c8f80187c592c24126e3912c8875e54940a82ee1247a45 in /etc/skel.d/.tmux.conf
/bin/sh -c chmod 0644 /etc/skel.d/.tmux.conf
ENV TPM_COMMIT=99469c4a9b1ccf77fade25842dc7bafbc8ce9946
/bin/sh -c install -d /etc/skel.d/.tmux/plugins && git clone --quiet https://github.com/tmux-plugins/tpm /etc/skel.d/.tmux/plugins/tpm && git -C /etc/skel.d/.tmux/plugins/tpm checkout --quiet "${TPM_COMMIT}" && git clone --quiet https://github.com/tmux-plugins/tmux-sensible /etc/skel.d/.tmux/plugins/tmux-sensible && git clone --quiet https://github.com/tmux-plugins/tmux-resurrect /etc/skel.d/.tmux/plugins/tmux-resurrect && git clone --quiet https://github.com/tmux-plugins/tmux-continuum /etc/skel.d/.tmux/plugins/tmux-continuum && find /etc/skel.d/.tmux -name .git -type d -exec rm -rf {} +
/bin/sh -c /usr/local/bin/mise use -g herdr || /usr/local/bin/mise use -g github:ogulcancelik/herdr && install -m0755 "$(/usr/local/bin/mise which herdr)" /usr/local/bin/herdr && /usr/local/bin/herdr --version
/bin/sh -c set -eu; HERDR_SETUP=/tmp/herdr-setup; install -d "${HERDR_SETUP}/.config/opencode"; HOME="${HERDR_SETUP}" /usr/local/bin/herdr integration install opencode; install -d /etc/skel.d/.config/opencode/plugins; install -m 0644 "${HERDR_SETUP}/.config/opencode/plugins/herdr-agent-state.js" /etc/skel.d/.config/opencode/plugins/herdr-agent-state.js; rm -rf "${HERDR_SETUP}"
/bin/sh -c install -d /etc/skel.d/.config/herdr
COPY file:77509c3c4a1a6d02114586aa10506aeccff822321406a6f0832aa1a3f8b38140 in /etc/skel.d/.config/herdr/config.toml
/bin/sh -c /usr/local/bin/mise use -g github:can1357/oh-my-pi && install -m0755 "$(/usr/local/bin/mise which omp)" /usr/local/bin/omp && /usr/local/bin/omp --version
/bin/sh -c set -eu; OMP_SETUP=/tmp/omp-setup; install -d "${OMP_SETUP}" /etc/skel.d/.omp/plugins; if HOME="${OMP_SETUP}" /usr/local/bin/omp install pi-meridian-extension; then cp -a "${OMP_SETUP}/.omp/plugins/." /etc/skel.d/.omp/plugins/ 2>/dev/null || true; else echo "WARN: pi-meridian-extension install failed upstream validation — skipping (omp routes via ANTHROPIC_BASE_URL shim)"; fi; rm -rf "${OMP_SETUP}"
COPY file:75f686a1eab6a3dd7f50770d088885023c5bc8972b1218211bea89d5b7b0a87f in /usr/local/bin/devcontainer-entrypoint
COPY file:e866d3f328e05a468791461d5f51f237f4b63df00792a7da18f2ae1fc184a971 in /usr/local/bin/devcontainer-resync-tools
/bin/sh -c chmod 0755 /usr/local/bin/devcontainer-entrypoint /usr/local/bin/devcontainer-resync-tools && chown root:root /usr/local/bin/devcontainer-entrypoint /usr/local/bin/devcontainer-resync-tools
/bin/sh -c chmod 0755 /usr/local/bin/osc52-copy && ln -sf osc52-copy /usr/local/bin/xsel && ln -sf osc52-copy /usr/local/bin/xclip && ln -sf osc52-copy /usr/local/bin/wl-copy && ln -sf osc52-copy /usr/local/bin/wl-paste
ENV KITTYLITTER_VERSION=0.3.2
ENV KITTYLITTER_SHA256_AMD64=62c6268d878f2d21c16bdfc75fb71132d30e589255ddf868f7b8b60def2c8be6
ENV KITTYLITTER_SHA256_ARM64=3bd532ec79695887fe822098d11fa2d33628504d2c27bc9ea9912f6f88615f7b
/bin/sh -c set -eu; /opt/bun/bin/bun install -g kittylitter@${KITTYLITTER_VERSION} --ignore-scripts; arch="$(dpkg --print-architecture)"; case "${arch}" in amd64) target="x86_64-unknown-linux-gnu"; WANT_SHA="${KITTYLITTER_SHA256_AMD64}" ;; arm64) target="aarch64-unknown-linux-gnu"; WANT_SHA="${KITTYLITTER_SHA256_ARM64}" ;; *) echo "ERROR: unsupported arch '${arch}' for kittylitter" >&2; exit 1 ;; esac; curl -fsSL "https://github.com/dnakov/litter/releases/download/v${KITTYLITTER_VERSION}/kittylitter-${target}.tar.xz" -o /tmp/kittylitter.tar.xz; GOT_SHA="$(sha256sum /tmp/kittylitter.tar.xz | awk '{print $1}')"; if [ "${GOT_SHA}" != "${WANT_SHA}" ]; then echo "ERROR: kittylitter sha256 mismatch: got ${GOT_SHA} want ${WANT_SHA}" >&2; exit 1; fi; tar -xJf /tmp/kittylitter.tar.xz --strip-components=1 -C /usr/local/bin "kittylitter-${target}/kittylitter"; chmod 0755 /usr/local/bin/kittylitter; rm /tmp/kittylitter.tar.xz; /usr/local/bin/kittylitter --version 2>&1 | head -1 || true
COPY file:976196da45951d9615c6e36a44f3d0034de1859f0ff28b78e2a3d7265a3cda8e in /usr/local/bin/opencodecl-serve
/bin/sh -c chmod 0755 /usr/local/bin/opencodecl-serve
/bin/sh -c install -d /usr/local/share/devcontainer
COPY file:13281319ad12d91ed4a405f3dc2cb2ac51870df9208fe629005ba84dc35467df in /usr/local/share/devcontainer/host.toml.template
/bin/sh -c chmod 0644 /usr/local/share/devcontainer/host.toml.template
EXPOSE 22 7681
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/devcontainer-entrypoint"]
ENV FOUNDRY_VERSION=stable
/bin/sh -c curl -fsSL https://foundry.paradigm.xyz | env FOUNDRY_DIR=/opt/foundry SHELL=/bin/bash bash && FOUNDRY_DIR=/opt/foundry /opt/foundry/bin/foundryup -i "${FOUNDRY_VERSION}" && ln -sf /opt/foundry/bin/forge /usr/local/bin/forge && ln -sf /opt/foundry/bin/cast /usr/local/bin/cast && ln -sf /opt/foundry/bin/anvil /usr/local/bin/anvil && ln -sf /opt/foundry/bin/chisel /usr/local/bin/chisel && /usr/local/bin/forge --version

Labels

Key Value
io.buildah.version 1.43.2
org.opencontainers.image.version 24.04