Skip to content

Commit

Permalink
chore: upload armel builder image
Browse files Browse the repository at this point in the history
  • Loading branch information
greenhat616 committed Sep 11, 2024
1 parent ca059b3 commit 35f1e5f
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 0 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/build-docker-debain-trixie-armel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and Push Docker Image

on:
push:
branches:
- main # 在主分支推送时触发
paths:
- docker/debian-trixie/armel/** # 指定路径
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and Push Docker image
uses: docker/build-push-action@v5
with:
context: ./docker/debian-trixie/armel
file: ./docker/debian-trixie/armel/Dockerfile
tags: |
ghcr.io/${{ github.repository_owner }}/builder-debian-trixie-armel:${{ github.sha }}
ghcr.io/${{ github.repository_owner }}/builder-debian-trixie-armel:latest
push: true

- name: Remove cache after build
run: |
rm -rf /tmp/.buildx-cache
73 changes: 73 additions & 0 deletions docker/debian-trixie/armel/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
FROM debian:trixie
ENV DEBIAN_FRONTEND=noninteractive

# RUN rm -f /etc/apt/sources.list.d/debian.sources && \
# rm -f /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie-updates main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie-backports main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian-security/ trixie-security main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list

RUN rm -f /etc/apt/sources.list.d/debian.sources && \
rm -f /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list

RUN apt-get update && \
apt-get install --assume-yes --no-install-recommends \
gnupg2 \
ca-certificates \
g++-arm-linux-gnueabi \
libc6-dev-armel-cross \
libclang-dev \
build-essential \
pkg-config \
curl \
wget \
file

RUN dpkg --add-architecture armel && \
apt-get update && apt-get install --assume-yes --no-install-recommends -f \
libwebkit2gtk-4.1-dev:armel \
libxdo-dev:armel \
libssl-dev:armel \
libgtk-3-dev:armel \
libayatana-appindicator3-dev:armel \
librsvg2-dev:armel \
libatk1.0-dev:armel \
libgdk-pixbuf-2.0-dev:armel \
libcairo2-dev:armel \
libpango1.0-dev:armel \
libgtk-3-dev:armel \
libsoup2.4-dev:armel

# Install NodeJs and pnpm
# RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.bashrc" SHELL="$(which bash)" bash - && \
# pnpm env use --global lts

# ENV RUSTUP_DIST_SERVER="https://rsproxy.cn" \
# RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"

# Install Rust
# RUN curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh -s -- -y --default-toolchain nightly --profile minimal
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly --profile minimal
ENV PATH="/root/.cargo/bin:$PATH"
RUN rustup target add armv7-unknown-linux-gnueabihf

# Set envs
# ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
# CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc \
# CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ \
# BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_gnu="--sysroot=/usr/aarch64-linux-gnu" \
# PKG_CONFIG_PATH="/usr/lib/aarch64-linux-gnu/pkgconfig/:${PKG_CONFIG_PATH}" \
# PKG_CONFIG_ALLOW_CROSS=1
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabi-gcc \
CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc \
CXX_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-g++ \
BINDGEN_EXTRA_CLANG_ARGS_armv7_unknown_linux_gnueabi="--sysroot=/usr/arm-linux-gnueabi" \
PKG_CONFIG_PATH="/usr/lib/arm-linux-gnueabi/pkgconfig/:${PKG_CONFIG_PATH}" \
PKG_CONFIG_ALLOW_CROSS=1

WORKDIR /app

0 comments on commit 35f1e5f

Please sign in to comment.