FROM oven/bun:1.3.14-alpine AS builder #FROM node:25-alpine AS builder ARG VERSION ENTRYPOINT sh RUN apk update RUN --mount=type=cache,target=/var/cache/apk apk update RUN --mount=type=cache,target=/var/cache/apk apk add python3 make g++ npm zip RUN adduser -D -h /home/builder -u 1126 builder USER builder WORKDIR /home/builder ADD --chown=builder:builder git@github.com:anomalyco/opencode.git#v${VERSION} opencode WORKDIR /home/builder/opencode # RUN bun install RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 bun install # WORKDIR /home/builder/opencode/packages/opencode # ENV OPENCODE_CHANNEL=latest # ENV OPENCODE_VERSION=${VERSION} # ENV OPENCODE_RELEASE=${VERSION} #bun run ./script/build.ts --single # RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 ./packages/opencode/script/build.ts RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 bun build --compile \ --target="bun-linux-x64-musl" \ --outfile="dist/opencode-linux-x64-musl/bin/opencode" \ --external="node-gyp" \ --minify \ --splitting \ --conditions="bun" \ --conditions="node" \ --format="esm" \ --tsconfig-override="./tsconfig.json" \ --define="FFF_LIBC=\"musl\"" \ --define="OPENCODE_LIBC=\"musl\"" \ --define="OPENCODE_CHANNEL=\"latest\"" \ --define="OPENCODE_VERSION=\"${VERSION}\"" \ --define="OTUI_TREE_SITTER_WORKER_PATH=/\$bunfs/root/opentui-tree-sitter-worker.js" \ --define="OPENCODE_WORKER_PATH=./src/cli/tui/worker.ts" \ --define="process.env.OPENTUI_LIBC=\"musl\"" \ ./src/index.ts \ ./src/cli/tui/worker.ts \ ./opentui-tree-sitter-worker.js #RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 ./packages/cli/script/build.ts #RUN rm ./opencode.tgz RUN adduser -D -h /var/lib/opencode opencode USER opencode WORKDIR /var/lib/opencode