Switch opencode image to build from source
CI / Build opencode docker images (push) Successful in 9m42s

This commit is contained in:
2026-07-21 21:32:31 +08:00
parent 85be151eac
commit 10e44c45ca
3 changed files with 248 additions and 7 deletions
+26 -6
View File
@@ -1,8 +1,30 @@
ARG BUN_VERSION
FROM oven/bun:${BUN_VERSION}-slim AS build
ARG OPENCODE_VERSION
# 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 git
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt update &&\
apt install -y python3 make g++ npm zip git
#RUN adduser -D -h /home/builder -u 1126 builder
RUN useradd -m -u 1126 builder
USER builder
WORKDIR /home/builder
ADD --chown=builder:builder --keep-git-dir=true git@github.com:anomalyco/opencode.git#v${OPENCODE_VERSION} opencode
WORKDIR /home/builder/opencode
RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 bun install
ADD --chown=builder:builder ./build.ts ./packages/opencode/script/build.ts
RUN --mount=type=cache,target=/home/builder/.bun/install/cache,uid=1126 ./packages/opencode/script/build.ts
FROM archlinux:latest AS release
ARG OPENCODE_VERSION
COPY mirrorlist /etc/pacman.d/mirrolist
RUN pacman-key --init
#RUN pacman-key --refresh-keys
@@ -16,7 +38,7 @@ RUN echo 'PATH DEFAULT=${HOME}/.local/bin:${HOME}/.cargo/bin:/usr/local/bin:/bin
RUN rm repository.key
RUN --mount=type=cache,target=/var/cache/pacman pacman -Syu --noconfirm
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
rustup rust-analyzer jdtls python-pipx ripgrep git rustup gradle curl sccache openssh \
xdg-utils rustup rust-analyzer jdtls python-pipx ripgrep git rustup gradle curl sccache openssh \
bash-language-server marksman python-lsp-server vscode-css-languageserver x86_64-unknown-linux-musl-zlib x86_64-unknown-linux-musl-gcc \
vscode-html-languageserver vscode-json-languageserver yaml-language-server base-devel docker docker-buildx less websocat
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed jdk25-graalvm-bin
@@ -27,9 +49,7 @@ USER opencode
RUN pipx install pyright
RUN pipx install pip-tools
USER root
ADD https://github.com/anomalyco/opencode/releases/download/v${OPENCODE_VERSION}/opencode-linux-x64.tar.gz ./opencode.tgz
RUN tar -xvf ./opencode.tgz -C /usr/bin
RUN rm opencode.tgz
COPY --from=build --chown=root:root /home/builder/opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode /usr/bin/opencode
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.46/lombok-1.18.46.jar /usr/lib/opencode/addons/lombok.jar