Files
v-cross-compilation-example/Dockerfile
ge 2c65ab66a9 Rework build scripts (close #5)
- Separate cross-compilation logic to crosscompile.vsh
- Manage Docker in make.vsh, no more manual running `docker build`, etc.
- Add MANUAL.md instruction
- Enchance Dockerfile
2025-11-18 01:36:19 +03:00

40 lines
1.2 KiB
Docker

FROM debian:trixie
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install --assume-yes --no-install-recommends --no-install-suggests \
ca-certificates \
git \
build-essential && \
apt-get clean && rm -rf /var/cache/apt/archives/* && rm -rf /var/lib/apt/lists/*
RUN git clone --depth=1 https://github.com/vlang/v /opt/v && \
make -C /opt/v && \
/opt/v/v symlink && \
v version
# See https://wiki.debian.org/CrossCompiling
RUN dpkg --add-architecture arm64 && \
dpkg --add-architecture armhf && \
dpkg --add-architecture s390x && \
dpkg --add-architecture ppc64el && \
dpkg --add-architecture riscv64 && \
apt-get update && \
apt-get install --assume-yes --no-install-recommends --no-install-suggests \
crossbuild-essential-arm64 \
crossbuild-essential-armhf \
crossbuild-essential-s390x \
crossbuild-essential-ppc64el \
crossbuild-essential-riscv64 \
gcc-mingw-w64-x86-64 \
clang lld && \
apt-get clean && rm -rf /var/cache/apt/archives/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app
USER 1000:1000
ENV VMODULES=/tmp/vmodules
ENV VCACHE=/tmp/vcache