Something went wrong. Try again.
javascript for 🐜's, a tiny runtime with big ambitions antjs.org
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980# syntax=docker/dockerfile:1.7
FROM alpine:3.23 AS toolchainWORKDIR /work
RUN apk add --no-cache \ bash build-base ca-certificates curl git tar xz zstd \ clang cmake lld llvm meson ninja pkgconf \ libunwind-dev libunwind-static linux-headers musl-dev \ nodejs npm py3-tomli \ tzdata util-linux-dev util-linux-static
FROM toolchain AS depsCOPY meson.build meson_options.txt ./
RUN mkdir -p vendorCOPY vendor/*.wrap vendor/COPY vendor/packagefiles/ vendor/packagefiles/
RUN meson subprojects download || test -d vendor/boringssl/.gitFROM deps AS build
COPY src/tools/package.json src/tools/npm-shrinkwrap.json /tmp/ant-tools/RUN --mount=type=cache,id=ant-musl-npm,target=/root/.npm,sharing=locked <<EOFset -enpm ci --prefix /tmp/ant-toolsmkdir -p src/toolsln -s /tmp/ant-tools/node_modules src/tools/node_modulesEOF
COPY . /work
ARG TARGETARCHARG BUILD_TIMESTAMPARG BUILD_GIT_HASH
ENV CC=clang CXX=clang++ CC_LD=lld AR=llvm-ar RANLIB=llvm-ranlib CMAKE_AR=llvm-ar CMAKE_RANLIB=llvm-ranlibRUN --mount=type=cache,id=ant-musl-build-${TARGETARCH},target=/work/build,sharing=locked \ --mount=type=cache,id=ant-musl-temporal-${TARGETARCH},target=/work/.cache/temporal-rust,sharing=locked <<EOFset -euxmeson setup build \ -Db_lto=true \ --buildtype=release \ -Dbuild_timestamp="${BUILD_TIMESTAMP:-}" \ -Dbuild_git_hash="${BUILD_GIT_HASH:-}" \ --prefer-static \ -Dstatic_link=truemeson compile -C buildmkdir -p /outllvm-strip --strip-unneeded build/antcp build/ant /out/antEOF
FROM scratch AS exportCOPY --from=build /out/ant /ant
FROM toolchain AS runtime-filesRUN <<EOFset -euxinstall -d /runtime/etc/ssl /runtime/usr/local/bin /runtime/usr/shareinstall -d -m 1777 /runtime/tmpcp /etc/ssl/certs/ca-certificates.crt /runtime/etc/ssl/cert.pemcp -a /usr/share/zoneinfo /runtime/usr/share/zoneinform -f \ /runtime/usr/share/zoneinfo/iso3166.tab \ /runtime/usr/share/zoneinfo/leap-seconds.list \ /runtime/usr/share/zoneinfo/leapseconds \ /runtime/usr/share/zoneinfo/tzdata.zi \ /runtime/usr/share/zoneinfo/zone.tab \ /runtime/usr/share/zoneinfo/zone1970.tabEOFCOPY --from=build /out/ant /runtime/usr/local/bin/ant
FROM scratch AS runtimeCOPY --from=runtime-files /runtime/ /
ENV HOME=/tmpWORKDIR /appENTRYPOINT ["/usr/local/bin/ant"]