From 4713f8db68c46f200a07d56187c05b5de45937bc Mon Sep 17 00:00:00 2001 From: licsber Date: Thu, 14 Mar 2024 09:02:24 +0800 Subject: [PATCH] add openwrt env. --- .github/bak-workflows/openwrt.yml | 45 ----------------- .github/workflows/openwrt-env.yml | 57 ++++++++++++++++++++++ openwrt/openwrt/env/Dockerfile.openwrt-env | 45 +++++++++++++++++ openwrt/openwrt/env/banner | 10 ++++ 4 files changed, 112 insertions(+), 45 deletions(-) delete mode 100644 .github/bak-workflows/openwrt.yml create mode 100644 .github/workflows/openwrt-env.yml create mode 100644 openwrt/openwrt/env/Dockerfile.openwrt-env create mode 100644 openwrt/openwrt/env/banner diff --git a/.github/bak-workflows/openwrt.yml b/.github/bak-workflows/openwrt.yml deleted file mode 100644 index 2ce1344..0000000 --- a/.github/bak-workflows/openwrt.yml +++ /dev/null @@ -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 }}" diff --git a/.github/workflows/openwrt-env.yml b/.github/workflows/openwrt-env.yml new file mode 100644 index 0000000..5883d3a --- /dev/null +++ b/.github/workflows/openwrt-env.yml @@ -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 }}" diff --git a/openwrt/openwrt/env/Dockerfile.openwrt-env b/openwrt/openwrt/env/Dockerfile.openwrt-env new file mode 100644 index 0000000..34eac51 --- /dev/null +++ b/openwrt/openwrt/env/Dockerfile.openwrt-env @@ -0,0 +1,45 @@ +FROM docker.io/debian:12 +LABEL org.opencontainers.image.authors='licsber' + +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!~"] diff --git a/openwrt/openwrt/env/banner b/openwrt/openwrt/env/banner new file mode 100644 index 0000000..7f0e047 --- /dev/null +++ b/openwrt/openwrt/env/banner @@ -0,0 +1,10 @@ + _ _ _ _ _ + | | (_) | | | | | | + | | _ ___ ___| |__ ___ _ __| | __ _| |__ + | | | |/ __/ __| '_ \ / _ \ '__| | / _` | '_ \ + | |____| | (__\__ \ |_) | __/ | | |___| (_| | |_) | + |______|_|\___|___/_.__/ \___|_| |______\__,_|_.__/ + +------------------------------------------------------ + %D %V, %C +------------------------------------------------------