trivalent/Dockerfile

73 lines
1.8 KiB
Docker

FROM debian:buster-slim
ARG RUST_VER=1.35.0
RUN apt update -y -q \
&& apt upgrade -y -q \
&& apt install -y -q \
autoconf \
automake \
cmake \
gcc \
make \
autotools-dev \
curl \
mingw-w64 \
mingw-w64-tools \
gcc-mingw-w64 \
binutils-mingw-w64 \
clang \
llvm \
git \
libxml2-dev \
libssl-dev \
liblzma-dev \
zlib1g-dev
#Build arguments
ARG osxcross_repo="tpoechtrager/osxcross"
ARG osxcross_revision="e0a171828a72a0d7ad4409489033536590008ebf"
ARG sdk_version="10.13"
RUN mkdir -p "/tmp/osxcross" \
&& cd "/tmp/osxcross" \
&& curl -sLo osxcross.tar.gz "https://codeload.github.com/${osxcross_repo}/tar.gz/${osxcross_revision}" \
&& tar --strip=1 -xzf osxcross.tar.gz \
&& rm -f osxcross.tar.gz
COPY MacOSX10.13.sdk.tar.xz /tmp/osxcross/tarballs/
RUN cd "/tmp/osxcross" \
&& UNATTENDED=1 ./build.sh \
&& mv target /usr/osxcross \
&& mv tools /usr/osxcross/ \
&& rm -rf /tmp/osxcross \
&& rm -rf "/usr/osxcross/SDK/MacOSX${sdk_version}.sdk/usr/share/man"
RUN useradd -ms /bin/bash rust
USER rust
WORKDIR /home/rust
RUN curl https://sh.rustup.rs -sSf -o rustup.sh && \
sh ./rustup.sh -y && \
$HOME/.cargo/bin/rustup default $RUST_VER && \
$HOME/.cargo/bin/rustup target add x86_64-pc-windows-gnu && \
$HOME/.cargo/bin/rustup target add x86_64-apple-darwin && \
rm rustup.sh
ENV PATH $PATH:/home/rust/.cargo/bin:/usr/osxcross/bin
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/osxcross/lib
RUN cp /usr/x86_64-w64-mingw32/lib/*crt2.o \
/home/rust/.rustup/toolchains/1.35.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/
ADD mac-cargo /usr/local/bin/
ADD mac-c++ /usr/local/bin/
ADD mac-cc /usr/local/bin/
ADD win-cargo /usr/local/bin/
ADD win-cc /usr/local/bin
WORKDIR /workdir
CMD ["cargo", "build", "--release"]