具有 GitHub 个操作的 JIB

JIB with GitHub Actions

简介

我目前正在创建一个 GitHub 自动构建容器的操作。

而且我想知道是否可以创建一个 GitHub 操作来自动构建容器而无需在项目的 pom.xml 中添加 JIB

如果我们做不到,你能告诉我怎么做吗?

我们有义务配置 pom.xml,否则我们无法配置。

你可以去这里:https://github.com/GoogleContainerTools/jib 获取有关 JIB 的更多信息。

在 Maven 中,您可以 运行 插件的目标而无需将插件添加到 pom.xml。例如,

mvn compile com.google.cloud.tools:jib-maven-plugin:3.2.0:build -Djib.to.image=foo

对于Gradle,可以使用一个技巧来使用initscript:

      # Adds Gradle init script that applies the Jib Gradle plugin.
      echo "initscript {
              repositories { maven { url 'https://plugins.gradle.org/m2' } }
              dependencies { classpath 'gradle.plugin.com.google.cloud.tools:jib-gradle-plugin:3.2.0' }
            }
            rootProject {
              afterEvaluate {
                if (!project.plugins.hasPlugin('com.google.cloud.tools.jib')) {
                  project.apply plugin: com.google.cloud.tools.jib.gradle.JibPlugin
                }
              }
            }" > "$HOME"/init-script.gradle
      # Runs the Gradle Jib build.
      gradle jib \
        --init-script="$HOME"/init-script.gradle \
        -Djib.to.image=foo

你可以找到一个例子here


另一个可能适用于您的选项是 Jib CLI,它具有从现有 JAR 构建容器的功能。

jib jar --target=my-registry.example.com/jar-app myapp.jar

还有一个名为 Jib Core 的 Java 库,您可以使用它编写 Java 程序来构建容器。 Jib Maven 和 Gradle 插件以及 Jib CLI 基于 Jib Core。

是的,您可以,在您的 GitHub 工作流程中使用此代码:

name: JIB container publish

on:
  release:
    types: [created]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: JIB container build and publish
        uses: MathieuSoysal/jib-container-publish.yml@v2.0.7
        with:
          PASSWORD: ${{ secrets.GITHUB_TOKEN }}

更多详情可以进入:https://github.com/MathieuSoysal/jib-container-publish.yml