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 ADD --chown=builder:builder ./build.ts ./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" \ # --sourcemap=none \ # --minify \ # --splitting \ # --conditions="bun" \ # --conditions="node" \ # --format="esm" \ # --tsconfig-override="./packages/opencode/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=./packages/opencode/src/cli/tui/worker.ts" \ # --define="process.env.OPENTUI_LIBC=\"musl\"" \ # ./packages/opencode/src/index.ts \ # ./packages/opencode/src/cli/tui/worker.ts RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 ./build.ts #RUN rm ./opencode.tgz # RUN adduser -D -h /var/lib/opencode opencode # USER opencode # WORKDIR /var/lib/opencode