add openwrt env.

This commit is contained in:
licsber 2024-03-14 09:02:24 +08:00
parent 32d69758bf
commit 4713f8db68
4 changed files with 112 additions and 45 deletions

View File

@ -1,45 +0,0 @@
name: Openwrt Docker Image
on:
watch:
types: started
push:
branches: [ 'main' ]
tags: [ 'v*.*.*' ]
env:
DOCKERFILE: Dockerfile.openwrt
REGION: cn-beijing
REGISTRY: registry.cn-beijing.aliyuncs.com
NAMESPACE: licsber
REPOSITORY: github
TAG: openwrt
TAG_FULL: openwrt-${{ github.sha }}
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout V3
uses: actions/checkout@v3
- name: Login to ACR V1
uses: aliyun/acr-login@v1
with:
login-server: "https://${{ env.REGISTRY }}"
username: "${{ secrets.ACR_USERNAME }}"
password: "${{ secrets.ACR_PASSWD }}"
region-id: "${{ env.REGION }}"
- name: Build Image
id: build
run: |
IMAGE=${{ env.REGISTRY }}/${{ env.NAMESPACE }}/${{ env.REPOSITORY }}
echo "image=$IMAGE" >> $GITHUB_OUTPUT
docker build -t "$IMAGE:${{ env.TAG_FULL }}" --file ${{ env.DOCKERFILE }} .
- name: Push Image
run: |
docker push "${{ steps.build.outputs.image }}:${{ env.TAG_FULL }}"
docker tag "${{ steps.build.outputs.image }}:${{ env.TAG_FULL }}" "${{ steps.build.outputs.image }}:${{ env.TAG }}"
docker push "${{ steps.build.outputs.image }}:${{ env.TAG }}"

57
.github/workflows/openwrt-env.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: OpenWRT ENV
on:
workflow_dispatch:
schedule:
- cron: '2 */8 * * *'
env:
DOCKERFILE: openwrt/openwrt/env/Dockerfile.openwrt-env
REGION: cn-beijing
REGISTRY: registry.cn-beijing.aliyuncs.com
NAMESPACE: licsber
REPOSITORY: github
TAG: openwrt-env
TAG_FULL: openwrt-env-${{ github.run_id }}
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Save space
env:
DEBIAN_FRONTEND: noninteractive
run: |
docker rmi `docker images -q`
sudo -E rm -rf /usr/share/dotnet /etc/mysql /etc/php /etc/apt/sources.list.d /usr/local/lib/android
sudo -E apt update -y
sudo -E apt -y purge azure-cli* ghc* zulu* llvm* firefox google* dotnet* powershell* openjdk* mysql* php* mongodb* dotnet* snap*
sudo -E systemctl daemon-reload
sudo -E apt -y autoremove --purge
sudo -E apt clean
sudo -E timedatectl set-timezone 'Asia/Shanghai'
- name: Checkout V4
uses: actions/checkout@v4
- name: Login to ACR V1
uses: aliyun/acr-login@v1
with:
login-server: "https://${{ env.REGISTRY }}"
username: "${{ secrets.ACR_USERNAME }}"
password: "${{ secrets.ACR_PASSWD }}"
region-id: "${{ env.REGION }}"
- name: Build Image
id: build
run: |
IMAGE=${{ env.REGISTRY }}/${{ env.NAMESPACE }}/${{ env.REPOSITORY }}
echo "image=$IMAGE" >> $GITHUB_OUTPUT
cd `dirname "${{ env.DOCKERFILE }}"`
docker build -t "$IMAGE:${{ env.TAG }}" --file `basename ${{ env.DOCKERFILE }}` .
- name: Push Image
run: |
docker push "${{ steps.build.outputs.image }}:${{ env.TAG }}"
docker tag "${{ steps.build.outputs.image }}:${{ env.TAG }}" "${{ steps.build.outputs.image }}:${{ env.TAG_FULL }}"
docker push "${{ steps.build.outputs.image }}:${{ env.TAG_FULL }}"

View File

@ -0,0 +1,45 @@
FROM docker.io/debian:12
LABEL org.opencontainers.image.authors='licsber<admin@licsber.site>'
RUN lscpu && \
apt update > /dev/null && \
apt install -y -qq build-essential clang g++ gcc-multilib g++-multilib \
git \
python3-distutils \
libncurses-dev \
libssl-dev \
libelf-dev python3-pyelftools \
qemu-utils \
xmlto \
screenfetch tree \
flex bison gawk gettext rsync unzip zlib1g-dev file wget \
> /dev/null && \
apt clean > /dev/null && \
rm -rf /var/lib/apt/list/* && \
screenfetch
RUN useradd -c 'licsber user' -m -d /home/licsber -s /bin/bash licsber
RUN usermod -aG sudo licsber
RUN echo 'licsber ALL=(ALL)NOPASSWD:ALL' >> /etc/sudoers
USER licsber
WORKDIR /home/licsber
RUN git clone https://github.com/openwrt/openwrt.git
RUN cd openwrt && \
./scripts/feeds update -a && \
./scripts/feeds install -a
RUN cd openwrt && \
make defconfig && \
make download -j8
COPY --chown=licsber banner package/base-files/files/etc/banner
RUN cd openwrt && \
make -j3 || make V=s
RUN tree -h openwrt/bin
CMD ["echo", "Hello from LicsberLab!~"]

10
openwrt/openwrt/env/banner vendored Normal file
View File

@ -0,0 +1,10 @@
_ _ _ _ _
| | (_) | | | | | |
| | _ ___ ___| |__ ___ _ __| | __ _| |__
| | | |/ __/ __| '_ \ / _ \ '__| | / _` | '_ \
| |____| | (__\__ \ |_) | __/ | | |___| (_| | |_) |
|______|_|\___|___/_.__/ \___|_| |______\__,_|_.__/
------------------------------------------------------
%D %V, %C
------------------------------------------------------