mirror of
https://github.com/trailbaseio/trailbase
synced 2026-04-21 13:37:44 +00:00
* GEOS couldn't build on MacOS due to CMake being to new :/. * GEOS couldn't build on Linux MUSL, due to missing an appropriate g++ setup :/. We're now downgrading cmake and are building in Docker on Linux :/.
37 lines
1.2 KiB
Docker
37 lines
1.2 KiB
Docker
# Valid values are: x86_64-musl, aarch64-musl.
|
|
ARG BASE_IMAGE_TAG
|
|
|
|
# NOTE: We cannot use alpine here because rusqlite's `libsqlite3-sys` with
|
|
# `preupdate-hook` has a **build-time** dependency on the `bindgen` crate with
|
|
# the `runtime` feature enabled. This in turn requires a dynamically linked
|
|
# libclang.so, alpine's `clang-dev` package won't work :/.
|
|
FROM messense/rust-musl-cross:${BASE_IMAGE_TAG} AS builder-x86_64-unknown-linux-musl
|
|
|
|
# ARGs need to be after FROM.
|
|
ARG RUST_TARGET
|
|
ARG RUST_TOOLCHAIN_VERSION
|
|
ARG WORKSPACE=/workspace
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
curl git libssl-dev pkg-config libclang-dev protobuf-compiler libprotobuf-dev libsqlite3-dev
|
|
|
|
# Install node
|
|
ENV PATH=/usr/local/node/bin:$PATH
|
|
ENV NODE_VERSION=22.13.1
|
|
|
|
RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz -C /tmp/ && \
|
|
/tmp/node-build-master/bin/node-build "${NODE_VERSION}" /usr/local/node && \
|
|
rm -rf /tmp/node-build-master
|
|
|
|
RUN npm install -g pnpm
|
|
RUN pnpm --version
|
|
|
|
# Needed by `pnpm install`
|
|
ENV CI=TRUE
|
|
|
|
RUN rustup default ${RUST_TOOLCHAIN_VERSION}
|
|
RUN rustup target add ${RUST_TARGET}
|
|
|
|
WORKDIR ${WORKSPACE}
|
|
|
|
# vim: ft=dockerfile
|