解决docker网络问题,通过GitHub Actions打包dockerfile

文章目录

我们可以借助github打包我们想要的镜像,而无需借助其他工具获取网络环境。

步骤一:注册Github

注册一个github账号,然后创建一个空的项目目录,之后我们会使用这个项目来执行GitHub Actions,用于执行我们的dockerfile

步骤二:推送夹带dockerfile的项目

然后我们需要一个项目来达到我们的目标,这个项目很简单:

  1. 根目录下放Dockerfile文件和.github文件夹

  2. .github文件夹下创建一个workflows文件夹

  3. workflows文件夹下再创建一个docker.yml文件,这个docker.yaml文件内容如下:

    yaml 复制代码
    name: Build Docker Image
    
    on:
      workflow_dispatch:
    
    permissions:
      contents: read
      packages: write
    
    jobs:
      docker:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v4
    
          - uses: docker/login-action@v3
            with:
              registry: ghcr.io
              username: ${{ github.actor }}
              password: ${{ secrets.GITHUB_TOKEN }}
    
          - name: Set lowercase repository
            run: |
              echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
    
          - name: Set version
            run: |
              echo "VERSION=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV
              echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
    
          - name: Build and Push
            uses: docker/build-push-action@v6
            with:
              context: .
              push: true
              tags: |
                ghcr.io/${{ env.REPO_LC }}:latest
                ghcr.io/${{ env.REPO_LC }}:${{ env.VERSION }}
                ghcr.io/${{ env.REPO_LC }}:${{ env.SHORT_SHA }}
    
          - name: Build Local Image For Export
            run: |
              docker build -t pull_docker:latest .
    
          - name: Export Image
            run: |
              docker save pull_docker:latest -o pull_docker_${VERSION}.tar
    
          - name: Compress
            run: |
              gzip pull_docker_${VERSION}.tar
    
          - name: Upload Artifact
            uses: actions/upload-artifact@v4
            with:
              name: docker-image-${{ env.VERSION }}
              path: pull_docker_${{ env.VERSION }}.tar.gz
    1. 都准备好之后,通过git push推送到github上

步骤三:启动Actions

在项目如下页面,进入Actions页面,按照下图红框部分,点击按钮,即可开始执行dockerfile的打包!

执行完成之后,会有一个完成的任务,我们点进去任务详情,在最后即可直接下载打包好的文件,通过zip解压后,就可以直接使用docker加载了

相关推荐
高频因子挖掘机4 分钟前
批量行情返回后,怎样把请求失败的股票单独挑出来?
后端·github·api
奥德元2 小时前
XiaoMate功能介绍: 让桌宠帮你分析你的桌面屏幕
github
TunerT_TQ2 小时前
【开源评测】dots:自带浏览器的 Web AI Agent——C++ 级反检测路径的工程取舍与争议
github
MrSYJ2 小时前
别人再问你路由表是啥,这篇文章摔它脸上
docker·云原生·kubernetes
Maynor在掘金2 小时前
1.9 万 Star 的 Hypit:让 AI Agent 帮你“一键复刻”爆款视频,保姆级上手教程
vue.js·github
嘎嘎风2 小时前
MiniMind 学习笔记之 05 从 768 维到下一个 token
github·源码阅读
高频因子挖掘机2 小时前
盘中筛选要同时看价格和盘口?按需分层比“一次全拿”更好维护
后端·github·api
羑悻2 小时前
穿越Docker内核迷雾:揭秘镜像分层存储的叠加态与卷挂载的多维空间穿梭技术
后端·docker·容器
谁在黄金彼岸3 小时前
2026年第40周GitHub趋势周报
github
Daniel_1233 小时前
轻量级站点监控面板 LightPing 开源啦
前端·后端·github