Burrito 1.3 now requires Zig 0.15.2 (build fails with 'Your Zig version does not match the one Burrito requires! We need 0.15.2, you have: 0.13.0'). Zig also changed its tarball naming around 0.15: the arch now comes before 'linux' (zig-x86_64-linux-VER.tar.xz instead of zig-linux-x86_64-VER.tar.xz), so both the download URL and the post-extract symlink glob had to change.
34 lines
1.2 KiB
Text
34 lines
1.2 KiB
Text
# Reproducible Burrito build environment for the agent.
|
|
# Produces linux_amd64 + linux_arm64 binaries into /work/agent/burrito_out.
|
|
# Keep elixir/OTP in sync with what the project compiles against locally
|
|
# (see `elixir --version` — currently Elixir 1.19 on OTP 28).
|
|
FROM elixir:1.19-otp-28 AS build
|
|
|
|
ENV MIX_ENV=prod DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential git ca-certificates curl xz-utils unzip 7zip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Zig (Burrito needs it for cross-compile).
|
|
# Zig 0.15.x flipped the tarball naming from zig-linux-ARCH- to zig-ARCH-linux-;
|
|
# keep the URL pattern in sync if you bump the version.
|
|
ARG ZIG_VERSION=0.15.2
|
|
RUN curl -fsSL https://ziglang.org/download/${ZIG_VERSION}/zig-$(uname -m)-linux-${ZIG_VERSION}.tar.xz \
|
|
| tar -xJ -C /opt && ln -s /opt/zig-*-linux-*/zig /usr/local/bin/zig
|
|
|
|
WORKDIR /work/agent
|
|
RUN mix local.hex --force && mix local.rebar --force
|
|
|
|
# Copy sources last for layer caching
|
|
COPY mix.exs mix.lock ./
|
|
RUN mix deps.get --only prod
|
|
|
|
COPY lib lib
|
|
COPY config config
|
|
|
|
RUN mix deps.compile
|
|
RUN mix release
|
|
|
|
# Default: print the produced artifacts
|
|
CMD ["sh", "-c", "ls -la burrito_out/"]
|