ARG ALPINE_VERSION=latest FROM --platform=$BUILDPLATFORM alpine:${ALPINE_VERSION} AS base RUN --mount=type=cache,target=/var/cache/apk apk update RUN --mount=type=cache,target=/var/cache/apk apk add rust-analyzer openjdk25-jdk jdtls pipx ripgrep git helix helix-tree-sitter-vendor RUN adduser -D -h /var/lib/opencode opencode RUN mkdir /workspace RUN chown opencode:opencode /workspace USER opencode RUN pipx install pyright USER root ARG TARGETPLATFORM BUILDPLATFORM OPENCODE_VERSION FROM base AS builder-linux_arm64 ADD https://github.com/anomalyco/opencode/releases/download/v${OPENCODE_VERSION}/opencode-linux-arm64-musl.tar.gz ./opencode.tgz FROM base AS builder-linux_amd64 ADD https://github.com/anomalyco/opencode/releases/download/v${OPENCODE_VERSION}/opencode-linux-x64-musl.tar.gz ./opencode.tgz FROM builder-${TARGETPLATFORM//\//_} AS release RUN tar -xvf ./opencode.tgz -C /usr/bin RUN rm opencode.tgz ADD --chown=opencode:opencode ./opencode.json /etc/opencode/opencode.json RUN mkdir -p /usr/lib/opencode/addons ADD --chmod=644 https://repo1.maven.org/maven2/org/projectlombok/lombok/1.18.44/lombok-1.18.44.jar /usr/lib/opencode/addons/lombok.jar ENV OPENCODE_CONFIG=/etc/opencode/opencode.json ENV EDITOR=hx USER opencode WORKDIR /workspace ENTRYPOINT ["opencode"] VOLUME ["/var/lib/opencode", "/workspace"]