Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/push-cross-images.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
name: Build
name: Cross Images

on:
push:
paths:
- '.github/workflows/push-cross-images.yml'
- 'rust/cubestore/cross/**'
branches:
- 'master'

jobs:
docker-dev:
Expand Down Expand Up @@ -41,5 +39,5 @@ jobs:
context: ./
file: ./rust/cubestore/cross/${{ matrix.target }}.Dockerfile
platforms: linux/amd64
push: true
push: ${{ github.ref == 'refs/heads/master' }}
tags: cubejs/rust-cross:${{ matrix.target }}
6 changes: 3 additions & 3 deletions rust/cubestore/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions rust/cubestore/Cross.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ image = "cubejs/rust-cross:x86_64-pc-windows-gnu-10012022"
xargo = false

[target.x86_64-unknown-linux-gnu]
image = "cubejs/rust-cross:x86_64-unknown-linux-gnu"
image = "cubejs/rust-cross:x86_64-unknown-linux-gnu-02012023"
xargo = false

[target.x86_64-unknown-linux-musl]
image = "cubejs/rust-cross:x86_64-unknown-linux-musl"
image = "cubejs/rust-cross:x86_64-unknown-linux-musl-02012023"
xargo = false

[target.aarch64-unknown-linux-gnu]
image = "cubejs/rust-cross:aarch64-unknown-linux-gnu"
image = "cubejs/rust-cross:aarch64-unknown-linux-gnu-02012023"
xargo = false
10 changes: 2 additions & 8 deletions rust/cubestore/cross/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,23 @@ Keep in mind:

```sh
# dmY
export CROSS_VERSION=10012022
export CROSS_VERSION=02012023

# docker build -t cubejs/rust-cross:x86_64-apple-darwin-$CROSS_VERSION -f x86_64-apple-darwin.Dockerfile .
# docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-pc-windows-gnu-$CROSS_VERSION -f x86_64-pc-windows-gnu.Dockerfile .
# docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-pc-windows-msvc-$CROSS_VERSION -f x86_64-pc-windows-msvc.Dockerfile .

docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-unknown-linux-gnu-$CROSS_VERSION -f x86_64-unknown-linux-gnu-stretch.Dockerfile .
docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-unknown-linux-gnu-$CROSS_VERSION -f x86_64-unknown-linux-gnu.Dockerfile .
docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-unknown-linux-musl-$CROSS_VERSION -f x86_64-unknown-linux-musl.Dockerfile .
docker buildx build --platform linux/amd64 -t cubejs/rust-cross:aarch64-unknown-linux-gnu-$CROSS_VERSION -f aarch64-unknown-linux-gnu.Dockerfile .

# Experimental
docker buildx build --platform linux/amd64 -t cubejs/rust-cross:x86_64-unknown-linux-gnu-buster-$CROSS_VERSION -f x86_64-unknown-linux-gnu-buster.Dockerfile .

#docker push cubejs/rust-cross:x86_64-apple-darwin
#docker push cubejs/rust-cross:x86_64-pc-windows-gnu-$CROSS_VERSION
#docker push cubejs/rust-cross:x86_64-pc-windows-msvc-$CROSS_VERSION
docker push cubejs/rust-cross:x86_64-unknown-linux-gnu-$CROSS_VERSION
docker push cubejs/rust-cross:x86_64-unknown-linux-musl-$CROSS_VERSION
docker push cubejs/rust-cross:aarch64-unknown-linux-gnu-$CROSS_VERSION

# Experimental
docker push cubejs/rust-cross:x86_64-unknown-linux-gnu-buster-$CROSS_VERSION

# Verify versions
docker run --rm -it cubejs/rust-cross:x86_64-unknown-linux-gnu-$CROSS_VERSION cc --version
docker run --rm -it cubejs/rust-cross:x86_64-unknown-linux-gnu-buster-$CROSS_VERSION cc --version
Expand Down
49 changes: 31 additions & 18 deletions rust/cubestore/cross/aarch64-unknown-linux-gnu.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,33 +1,48 @@
# Based on top of ubuntu 16.04
# Based on top of ubuntu 20.04
# TODO: Migrate to https://github.com/cross-rs/cross/pkgs/container/aarch64-unknown-linux-gnu, when it will be released!
# https://github.com/rust-embedded/cross/blob/master/docker/Dockerfile.aarch64-unknown-linux-gnu
FROM rustembedded/cross:aarch64-unknown-linux-gnu
FROM cubejs/cross-aarch64-unknown-linux-gnu:31122022

RUN apt-get update \
&& apt-get -y upgrade \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y software-properties-common pkg-config wget apt-transport-https ca-certificates \
&& wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& add-apt-repository "deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main" \
&& apt-get update \
&& add-apt-repository "deb https://apt.llvm.org/focal/ llvm-toolchain-focal-12 main" \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y gcc-multilib g++-multilib \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y llvm-12 clang-12 libclang-12-dev clang-12 make libssl-dev libsasl2-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y llvm-12 clang-12 libclang-12-dev clang-12 \
make cmake libsasl2-dev \
libc6 libc6-dev libc6-arm64-cross libc6-dev-arm64-cross \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*;

RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-12 100
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100
RUN update-alternatives --install /usr/bin/clang-cpp clang-cpp /usr/bin/clang-cpp-12 100

# https://www.openssl.org/source/old/1.1.1/
ARG OPENSSL_VERSION=1.1.1l

ENV MACHINE=armv8
ENV ARCH=arm
ENV CC=aarch64-linux-gnu-gcc
ENV OPENSSL_VERSION=1.1.1l
ENV LIZB_VERSION=1.2.13

ENV ARCH=arm \
MACHINE=armv8 \
AS=aarch64-linux-gnu-as \
AR=aarch64-linux-gnu-ar \
CC=aarch64-linux-gnu-gcc \
CXX=aarch64-linux-gnu-g++ \
CPP=aarch64-linux-gnu-cpp \
LD=aarch64-linux-gnu-ld

RUN wget https://zlib.net/zlib-${LIZB_VERSION}.tar.gz -O - | tar -xz && \
cd zlib-${LIZB_VERSION} && \
./configure --prefix=/usr/aarch64-linux-gnu && \
make -j $(nproc) && \
make install && \
cd .. && rm -rf zlib-${LIZB_VERSION};

RUN wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -O - | tar -xz &&\
cd openssl-${OPENSSL_VERSION} && \
./Configure --prefix=/openssl --openssldir=/openssl/lib linux-aarch64 && \
./Configure --prefix=/usr/aarch64-linux-gnu --openssldir=/usr/aarch64-linux-gnu/lib linux-aarch64 && \
make depend && \
make -j $(nproc) && \
make install_sw && \
Expand All @@ -38,13 +53,11 @@ ENV PKG_CONFIG_ALLOW_CROSS=true
ENV PKG_CONFIG_ALL_STATIC=true
ENV RUSTFLAGS="-C target-feature=-crt-static"

ENV OPENSSL_DIR=/openssl \
ENV OPENSSL_DIR=/usr/aarch64-linux-gnu \
OPENSSL_STATIC=yes \
OPENSSL_INCLUDE_DIR=/openssl/include \
OPENSSL_LIB_DIR=/openssl/lib

ENV OPENSSL_ROOT_DIR=/openssl
ENV OPENSSL_LIBRARIES=/openssl/lib
ENV LIBZ_SYS_STATIC=1
OPENSSL_INCLUDE_DIR=/usr/aarch64-linux-gnu/include \
OPENSSL_LIB_DIR=/usr/aarch64-linux-gnu/lib \
OPENSSL_LIBRARIES=/usr/aarch64-linux-gnu/lib \
LIBZ_SYS_STATIC=1

ENV PATH="/cargo/bin:$PATH"

This file was deleted.