首页 > 其他分享 >拂衣天气(微天气)Github Action镜像自动构建与推送

拂衣天气(微天气)Github Action镜像自动构建与推送

时间:2024-05-04 13:56:02浏览次数:23  
标签:Github name 拂衣 天气 gradle Action action docker

前言

这里暂不作过多的操作,还是保持与此前一致。即通过Github Action完成Docker Image的build与push,目标仓库为阿里云容器镜像服务实例(个人版)registry.cn-hangzhou.aliyuncs.com

那么一共分为三个部分:

  • Dockerfile编写
  • 阿里云容器镜像服务配置
  • Github Action

Dockerfile编写

  • jdk17
  • gradle
FROM gradle:jdk17-alpine AS build

# 设置语言,支持中文
ENV LANG C.UTF-8

COPY --chown=gradle:gradle . /opt/gradle/src
WORKDIR /opt/gradle/src
RUN gradle clean build -x test --no-daemon

FROM eclipse-temurin:17-jdk-jammy

COPY --from=build /opt/gradle/src/build/libs/*.jar /usr/app/

WORKDIR /usr/app/

RUN sh -c 'touch micro-weather-backend-1.0.0-RELEASE.jar'

ENTRYPOINT ["java", "-jar", "micro-weather-backend-1.0.0-RELEASE.jar"]

Github Action

  1. 先在阿里云镜像服务中创建命名空间

  2. 创建仓库(可选,因为可以自动创建)

  3. 编写Github Action脚本

    micro-weather-github-action-01

    name: Micro Weather Service Image Build And Push CI
    
    on:
    push:
        branches:
        - 'main'
    jobs:
    docker:
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
            uses: actions/checkout@v2
    
        # setup-qemu 如果您想使用 QEMU 添加仿真支持以便能够针对更多平台进行构建,则 action 会很有用
        - name: Set up QEMU
            uses: docker/setup-qemu-action@v1
    
        # setup-buildx-action 将默认使用docker-container 构建器驱动程序创建和引导构建器。非必需
        - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v1
    
        - name: Login to Aliyun DockerHub
            uses: docker/login-action@v1
            with:
            registry: ${{secrets.ALIYUN_DOCKERHUB_REGISTRY}}
            username: ${{ secrets.ALIYUN_DOCKERHUB_USERNAME }}
            password: ${{ secrets.ALIYUN_DOCKERHUB_TOKEN }}
    
        - name: Build and push
            uses: docker/build-push-action@v2
            with:
            push: true
            tags: registry.cn-hangzhou.aliyuncs.com/fuyi-atlas/micro-weather:latest
    
  4. 设置环境变量

    micro-weather-github-action-02

    micro-weather-github-action-03

    micro-weather-github-action-04

  5. 触发Action测试(提交代码)

    第一次失败是因为我是直接在github上面添加的action配置,通过commit提交后直接触发了action动作,但是此时还没有配置环境变量,所以失败了。所以可以在action触发前将环境变量设置好就不会失败了。

    micro-weather-github-action-05

    micro-weather-github-action-06

参考文档

标签:Github,name,拂衣,天气,gradle,Action,action,docker
From: https://www.cnblogs.com/threadj/p/18172239

相关文章

  • 拂衣天气(微天气)终篇
    起源天气小程序产生于2022年年初,目的是用于验证自己是否有进入全栈开发(仅前后端)的能力。受新冠疫情影响,2022年的春节是在杭州过的。还记得当时附近好几个地方都被划为了高风险,对整个区进行了管控。如果选择回家的话,得到将是14天的隔离,还不确定能否回来上班。因此便没有回去了。......
  • 拂衣天气(微天气)-序章
    前言天气小程序产生于2022年年初,目的是用于验证自己是否有进入全栈开发(仅前后端)的能力。该项目从2022年1月12号正式启动,于2022年3月19日发布一阶段最终版本(1.1.9),总体耗时2个月零7天。从内容完整度以及界面友好程度来说,我给自己70分。完成内容和风天气API接入,可实现实时天气、......
  • 拂衣天气(微天气)-技术预研
    前言俗话说:磨刀不误砍柴工。我想做一个天气类别的小程序,以此进行全栈开发能力的试炼。我想这会是一个微信小程序、是一个可以正常使用的小程序,以Java进行服务端开发,以Mapbox实现天气数据可视化。但是我是一个后端开发工程师,我不怎么会写页面,我特别的讨厌写CSS。我也没有接触过......
  • 拂衣天气(微天气)-模型设计
    前言这是一个前后端分离的项目,后端使用Java进行开发,而前端通过微信小程序实现。功能结构可从上图得知,部分功能已去除:消息消息推送紧急情况推送用户个人中心模型设计用户信息(UserInfo)idLong主键oidStringOpenIDuidStringUnionIDnameString昵称pho......
  • 拂衣天气(微天气)-开发环境准备
    前言本文用于说明本次开发所使用的环境,以及环境的搭建过程。操作系统Windows10专业版其实我当时使用的操作系统的ArchLinux,开发完成后才又重装回Windows。现在又用回了[email protected]服务端服务端使用Java语言进行开发,项目构建使用Maven(Grad......
  • 拂衣天气(微天气)—行政区划数据(一)
    前言微天气程序中存在如下几个功能需要使用到行政区划数据:城市列表,需要支持城市搜索根据经纬度获区域(城市)的天气数据地图坐标拾取并获取所处区域(城市)信息,同时获取天气数据对于城市的天气数据,不使用和风天气的城市列表,而是自行维护,通过空间位置(经纬度)进行关联。对于城市位置......
  • 天气学
    天气学主要研究三方面内容:①揭示和发现大气环流、天气系统、天气过程等大气运动现象,综合归纳大气运动规律。②研究大气中不同尺度的天气系统的结构、发生、发展和移动等特征,各种天气系统之间的相互作用及大气环流和天气过程的演变等的物理机制。③研究天气预报方法。首先必须仔......
  • GitHub Copilot 初步
    1.概述GitHubCopilot是一款AI编码助手,可帮助我们更快、更省力地编写代码,从而将更多精力集中在问题解决和协作上。Copilot会在你键入时提供编码建议:有时是当前行的补全,有时是全新的代码块。可以接受全部或部分建议,也可以忽略建议并继续键入。使用聊天功能,可以询问Copilot......
  • 数据可视化在天气方面能够为我们带来什么样的帮助?
    数据可视化在天气方面能够为我们带来极大的帮助。天气是人类生活中一个重要的因素,对于农业、交通、航空、能源等各个领域都有着重要的影响。而数据可视化技术通过将复杂的天气数据转化为直观、易懂的图表、图像或地图等形式,为我们提供了更深入、更全面的天气信息,帮助我们更好地理......
  • Github管理代码学习
    版本冲突github代码管理学习。关于版本控制,假如有两个人合作,合作者a修改了合作者b的代码,并在服务器中更新。而合作者b感觉更新的内容是错的,想基于未更新版本进行修改。这种情况该怎么解决在使用GitHub进行代码管理时,如果出现你描述的情况,合作者B可以采取以下几个步骤来解决问题:......