mirror of
https://github.com/bensuperpc/dockcross.git
synced 2025-06-20 01:44:27 +02:00
47 lines
1.5 KiB
Docker
47 lines
1.5 KiB
Docker
ARG ORG=dockcross
|
|
FROM ${ORG}/base:latest
|
|
|
|
ENV XCC_PREFIX=/usr/xcc
|
|
ENV CROSS_TRIPLE=aarch64-linux-musl
|
|
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}-cross
|
|
|
|
RUN mkdir -p ${XCC_PREFIX}
|
|
RUN curl --max-time 15 --retry 5 -LO http://musl.cc/${CROSS_TRIPLE}-cross.tgz
|
|
RUN tar -C ${XCC_PREFIX} -xvf ${CROSS_TRIPLE}-cross.tgz
|
|
|
|
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
|
|
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
|
|
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
|
|
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
|
|
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
|
|
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
|
|
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
|
|
|
|
# Prepare Rust
|
|
ENV PATH="/root/.cargo/bin/:$PATH"
|
|
RUN rustup target add aarch64-unknown-linux-musl && cargo install --version 0.28.0 cbindgen
|
|
COPY config.toml /root/.cargo/
|
|
|
|
# Prepare CMake
|
|
COPY Toolchain.cmake ${CROSS_ROOT}/
|
|
ENV CMAKE_TOOLCHAIN_FILE=${CROSS_ROOT}/Toolchain.cmake
|
|
|
|
# Linux kernel cross compilation variables
|
|
ENV PATH=${PATH}:${CROSS_ROOT}/bin
|
|
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
|
|
ENV ARCH=arm64
|
|
|
|
# Build-time metadata as defined at http://label-schema.org
|
|
ARG BUILD_DATE
|
|
ARG IMAGE=dockcross/linux-arm64-musl
|
|
ARG VERSION=latest
|
|
ARG VCS_REF
|
|
ARG VCS_URL
|
|
LABEL org.label-schema.build-date=$BUILD_DATE \
|
|
org.label-schema.name=$IMAGE \
|
|
org.label-schema.version=$VERSION \
|
|
org.label-schema.vcs-ref=$VCS_REF \
|
|
org.label-schema.vcs-url=$VCS_URL \
|
|
org.label-schema.schema-version="1.0"
|
|
ENV DEFAULT_DOCKCROSS_IMAGE=${IMAGE}:${VERSION}
|