Switch opencode image to build from source
CI / Build opencode docker images (push) Successful in 3m39s
CI / Build opencode docker images (push) Successful in 3m39s
This commit is contained in:
+31
-6
@@ -1,8 +1,30 @@
|
||||
FROM archlinux:latest AS release
|
||||
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 base-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,6 @@ 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
|
||||
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
|
||||
@@ -38,3 +57,9 @@ USER opencode
|
||||
WORKDIR /workspace
|
||||
ENTRYPOINT ["opencode"]
|
||||
VOLUME ["/var/lib/opencode", "/workspace"]
|
||||
|
||||
|
||||
FROM base-release AS release
|
||||
COPY --from=build --chown=root:root /home/builder/opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode /usr/bin/opencode
|
||||
FROM base-release AS release-bin
|
||||
ADD --unpack https://github.com/anomalyco/opencode/releases/download/v${OPENCODE_VERSION}/opencode-linux-x64.tar.gz /usr/bin
|
||||
|
||||
Reference in New Issue
Block a user