Featured image of post skaffold dev操作java项目

skaffold dev操作java项目

获取 java 源代码:

1
2
git clone git@github.com:GoogleContainerTools/skaffold.git
cd skaffold/examples/buildpacks-java

需要修改 skaffold.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
apiVersion: skaffold/v4beta2
kind: Config
build:
  local:
    push: false
  artifacts:
  - image: skaffold-buildpacks
    buildpacks:
      builder: "10.7.20.12:5000/paketo-buildpacks/builder:base"
      # env:
      # - GOOGLE_RUNTIME_VERSION=8
# profiles:
# - name: gcb
#   build:
#     googleCloudBuild: {}

修改 pom.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.skaffold</groupId>
  <artifactId>hello-spring-boot</artifactId>
  <version>0.1.0</version>
  <description>Spring Boot</description>

  <properties>
    <java.version>1.8</java.version>
  </properties>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.4</version>
  </parent>
 <repositories>
    <repository>
        <id>nexus-163</id>
        <name>Nexus 163</name>
        <url>http://mirrors.163.com/maven/repository/maven-public/</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>nexus-163</id>
        <name>Nexus 163</name>
        <url>http://mirrors.163.com/maven/repository/maven-public/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>
       <!--配置阿里云maven私有仓库(即配阿里私服)-->

  <dependencyManagement>
    <dependencies>
      <!-- SnakeYAML 1.32 addresses CVE-2022-25857 and CVE-2022-38752 -->
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.32</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>

  <build>
    <finalName>hello</finalName>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

首先本地需要有 minikube 部署好,准备部署了

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
 [Systemd]  HTTPS_PROXY=http://172.30.144.1:10809 skaffold dev
Generating tags...
 - skaffold-buildpacks -> skaffold-buildpacks:v2.1.0-57-g05a239970-dirty
Checking cache...
 - skaffold-buildpacks: Not found. Building
Starting build...
Building [skaffold-buildpacks]...
Target platforms: [linux/amd64]
base: Pulling from paketo-buildpacks/builder
Digest: sha256:d6586597015aa00003c69d4c2cdbb5d14f806ffa7eac8ef02961eb33c6d57b98
Status: Image is up to date for 10.7.20.12:5000/paketo-buildpacks/builder:base
base-cnb: Pulling from paketobuildpacks/run
Digest: sha256:dec5146cd16049064246308ee633ab451ccb8c8e7e0ec595727ea12d3719a006
Status: Image is up to date for paketobuildpacks/run:base-cnb
0.16.0: Pulling from buildpacksio/lifecycle
Digest: sha256:f75a04887fced3ae0504a37edb2c0d29d366511cd9ede34dbb90c5282b106e79
Status: Image is up to date for buildpacksio/lifecycle:0.16.0
===> ANALYZING
[analyzer] Restoring data for SBOM from previous image
===> DETECTING
[detector] 10 of 26 buildpacks participating
[detector] paketo-buildpacks/ca-certificates   3.6.0
[detector] paketo-buildpacks/bellsoft-liberica 9.11.0
[detector] paketo-buildpacks/syft              1.25.0
[detector] paketo-buildpacks/maven             6.13.0
[detector] paketo-buildpacks/executable-jar    6.6.1
[detector] paketo-buildpacks/apache-tomcat     7.12.0
[detector] paketo-buildpacks/apache-tomee      1.6.1
[detector] paketo-buildpacks/liberty           3.4.1
[detector] paketo-buildpacks/dist-zip          5.5.1
[detector] paketo-buildpacks/spring-boot       5.23.0
===> RESTORING
[restorer] Restoring metadata for "paketo-buildpacks/ca-certificates:helper" from app image
[restorer] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:java-security-properties" from app image
[restorer] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jre" from app image
[restorer] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:helper" from app image
[restorer] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jdk" from cache
[restorer] Restoring metadata for "paketo-buildpacks/syft:syft" from cache
[restorer] Restoring metadata for "paketo-buildpacks/maven:application" from cache
[restorer] Restoring metadata for "paketo-buildpacks/maven:cache" from cache
[restorer] Restoring metadata for "paketo-buildpacks/maven:maven" from cache
[restorer] Restoring metadata for "paketo-buildpacks/spring-boot:spring-cloud-bindings" from app image
[restorer] Restoring metadata for "paketo-buildpacks/spring-boot:web-application-type" from app image
[restorer] Restoring metadata for "paketo-buildpacks/spring-boot:helper" from app image
[restorer] Restoring data for "paketo-buildpacks/bellsoft-liberica:jdk" from cache
[restorer] Restoring data for "paketo-buildpacks/syft:syft" from cache
[restorer] Restoring data for "paketo-buildpacks/maven:application" from cache
[restorer] Restoring data for "paketo-buildpacks/maven:cache" from cache
[restorer] Restoring data for "paketo-buildpacks/maven:maven" from cache
[restorer] Restoring data for SBOM from cache
===> BUILDING
[builder]
[builder] Paketo Buildpack for CA Certificates 3.6.0
[builder]   https://github.com/paketo-buildpacks/ca-certificates
[builder]   Launch Helper: Reusing cached layer
[builder]
[builder] Paketo Buildpack for BellSoft Liberica 9.11.0
[builder]   https://github.com/paketo-buildpacks/bellsoft-liberica
[builder]   Build Configuration:
[builder]     $BP_JVM_JLINK_ARGS           --no-man-pages --no-header-files --strip-debug --compress=1  configure custom link arguments (--output must be omitted)
[builder]     $BP_JVM_JLINK_ENABLED        false                                                        enables running jlink tool to generate custom JRE
[builder]     $BP_JVM_TYPE                 JRE                                                          the JVM type - JDK or JRE
[builder]     $BP_JVM_VERSION              11                                                           the Java version
[builder]   Launch Configuration:
[builder]     $BPL_DEBUG_ENABLED           false                                                        enables Java remote debugging support
[builder]     $BPL_DEBUG_PORT              8000                                                         configure the remote debugging port
[builder]     $BPL_DEBUG_SUSPEND           false                                                        configure whether to suspend execution until a debugger has attached
[builder]     $BPL_HEAP_DUMP_PATH                                                                       write heap dumps on error to this path
[builder]     $BPL_JAVA_NMT_ENABLED        true                                                         enables Java Native Memory Tracking (NMT)
[builder]     $BPL_JAVA_NMT_LEVEL          summary                                                      configure level of NMT, summary or detail
[builder]     $BPL_JFR_ARGS                                                                             configure custom Java Flight Recording (JFR) arguments
[builder]     $BPL_JFR_ENABLED             false                                                        enables Java Flight Recording (JFR)
[builder]     $BPL_JMX_ENABLED             false                                                        enables Java Management Extensions (JMX)
[builder]     $BPL_JMX_PORT                5000                                                         configure the JMX port
[builder]     $BPL_JVM_HEAD_ROOM           0                                                            the headroom in memory calculation
[builder]     $BPL_JVM_LOADED_CLASS_COUNT  35% of classes                                               the number of loaded classes in memory calculation
[builder]     $BPL_JVM_THREAD_COUNT        250                                                          the number of threads in memory calculation
[builder]     $JAVA_TOOL_OPTIONS                                                                        the JVM launch flags
[builder]     Using buildpack default Java version 11
[builder]   BellSoft Liberica JDK 11.0.18: Reusing cached layer
[builder]   BellSoft Liberica JRE 11.0.18: Reusing cached layer
[builder]   Launch Helper: Reusing cached layer
[builder]   Java Security Properties: Reusing cached layer
[builder]
[builder] Paketo Buildpack for Syft 1.25.0
[builder]   https://github.com/paketo-buildpacks/syft
[builder]
[builder] Paketo Buildpack for Maven 6.13.0
[builder]   https://github.com/paketo-buildpacks/maven
[builder]   Build Configuration:
[builder]     $BP_EXCLUDE_FILES                                                                 colon separated list of glob patterns, matched source files are removed
[builder]     $BP_INCLUDE_FILES                                                                 colon separated list of glob patterns, matched source files are included
[builder]     $BP_JAVA_INSTALL_NODE      false                                                  whether to install Yarn/Node binaries based on the presence of a package.json or yarn.lock file
[builder]     $BP_MAVEN_BUILD_ARGUMENTS  -Dmaven.test.skip=true --no-transfer-progress package  the arguments to pass to Maven
[builder]     $BP_MAVEN_BUILT_ARTIFACT   target/*.[ejw]ar                                       the built application artifact explicitly.  Supersedes $BP_MAVEN_BUILT_MODULE
[builder]     $BP_MAVEN_BUILT_MODULE                                                            the module to find application artifact in
[builder]     $BP_MAVEN_DAEMON_ENABLED   false                                                  use maven daemon
[builder]     $BP_MAVEN_POM_FILE         pom.xml                                                the location of the main pom.xml file, relative to the application root
[builder]     $BP_MAVEN_SETTINGS_PATH                                                           the path to a Maven settings file
[builder]     $BP_MAVEN_VERSION          3                                                      the Maven version
[builder]     $BP_NODE_PROJECT_PATH                                                             configure a project subdirectory to look for `package.json` and `yarn.lock` files
[builder]   Apache Maven 3.9.0: Reusing cached layer
[builder]     Creating cache directory /home/cnb/.m2
[builder]   Compiled Application: Contributing to layer
[builder]     Executing mvn --batch-mode -Dmaven.test.skip=true --no-transfer-progress package
[builder]       [INFO] Scanning for projects...
[builder]       [INFO]
[builder]       [INFO] -------------------< org.skaffold:hello-spring-boot >-------------------
[builder]       [INFO] Building hello-spring-boot 0.1.0
[builder]       [INFO]   from pom.xml
[builder]       [INFO] --------------------------------[ jar ]---------------------------------
[builder]       [INFO]
[builder]       [INFO] --- resources:3.2.0:resources (default-resources) @ hello-spring-boot ---
[builder]       [INFO] Using 'UTF-8' encoding to copy filtered resources.
[builder]       [INFO] Using 'UTF-8' encoding to copy filtered properties files.
[builder]       [INFO] skip non existing resourceDirectory /workspace/src/main/resources
[builder]       [INFO] skip non existing resourceDirectory /workspace/src/main/resources
[builder]       [INFO]
[builder]       [INFO] --- compiler:3.10.1:compile (default-compile) @ hello-spring-boot ---
[builder]       [INFO] Changes detected - recompiling the module!
[builder]       [INFO] Compiling 2 source files to /workspace/target/classes
[builder]       [INFO]
[builder]       [INFO] --- resources:3.2.0:testResources (default-testResources) @ hello-spring-boot ---
[builder]       [INFO] Not copying test resources
[builder]       [INFO]
[builder]       [INFO] --- compiler:3.10.1:testCompile (default-testCompile) @ hello-spring-boot ---
[builder]       [INFO] Not compiling test sources
[builder]       [INFO]
[builder]       [INFO] --- surefire:2.22.2:test (default-test) @ hello-spring-boot ---
[builder]       [INFO] Tests are skipped.
[builder]       [INFO]
[builder]       [INFO] --- jar:3.2.2:jar (default-jar) @ hello-spring-boot ---
[builder]       [INFO] Building jar: /workspace/target/hello.jar
[builder]       [INFO]
[builder]       [INFO] --- spring-boot:2.7.4:repackage (repackage) @ hello-spring-boot ---
[builder]       [INFO] Replacing main artifact with repackaged archive
[builder]       [INFO] ------------------------------------------------------------------------
[builder]       [INFO] BUILD SUCCESS
[builder]       [INFO] ------------------------------------------------------------------------
[builder]       [INFO] Total time:  3.681 s
[builder]       [INFO] Finished at: 2023-03-07T04:18:14Z
[builder]       [INFO] ------------------------------------------------------------------------
[builder]
[builder]   Removing source code
[builder]   Restoring application artifact
[builder]
[builder] Paketo Buildpack for Executable JAR 6.6.1
[builder]   https://github.com/paketo-buildpacks/executable-jar
[builder]   Class Path: Contributing to layer
[builder]     Writing env/CLASSPATH.delim
[builder]     Writing env/CLASSPATH.prepend
[builder]   Process types:
[builder]     executable-jar: java org.springframework.boot.loader.JarLauncher (direct)
[builder]     task:           java org.springframework.boot.loader.JarLauncher (direct)
[builder]     web:            java org.springframework.boot.loader.JarLauncher (direct)
[builder]
[builder] Paketo Buildpack for Spring Boot 5.23.0
[builder]   https://github.com/paketo-buildpacks/spring-boot
[builder]   Build Configuration:
[builder]     $BP_SPRING_CLOUD_BINDINGS_DISABLED   false  whether to contribute Spring Boot cloud bindings support
[builder]   Launch Configuration:
[builder]     $BPL_SPRING_CLOUD_BINDINGS_DISABLED  false  whether to auto-configure Spring Boot environment properties from bindings
[builder]     $BPL_SPRING_CLOUD_BINDINGS_ENABLED   true   Deprecated - whether to auto-configure Spring Boot environment properties from bindings
[builder]   Creating slices from layers index
[builder]     dependencies (16.7 MB)
[builder]     spring-boot-loader (281.8 KB)
[builder]     snapshot-dependencies (0.0 B)
[builder]     application (29.3 KB)
[builder]   Launch Helper: Reusing cached layer
[builder]   Spring Cloud Bindings 1.11.0: Reusing cached layer
[builder]   Web Application Type: Reusing cached layer
[builder]   4 application slices
[builder]   Image labels:
[builder]     org.opencontainers.image.title
[builder]     org.opencontainers.image.version
[builder]     org.springframework.boot.version
===> EXPORTING
[exporter] Reusing layer 'paketo-buildpacks/ca-certificates:helper'
[exporter] Reusing layer 'paketo-buildpacks/bellsoft-liberica:helper'
[exporter] Reusing layer 'paketo-buildpacks/bellsoft-liberica:java-security-properties'
[exporter] Reusing layer 'paketo-buildpacks/bellsoft-liberica:jre'
[exporter] Reusing layer 'paketo-buildpacks/executable-jar:classpath'
[exporter] Reusing layer 'paketo-buildpacks/spring-boot:helper'
[exporter] Reusing layer 'paketo-buildpacks/spring-boot:spring-cloud-bindings'
[exporter] Reusing layer 'paketo-buildpacks/spring-boot:web-application-type'
[exporter] Reusing layer 'buildpacksio/lifecycle:launch.sbom'
[exporter] Reusing 5/5 app layer(s)
[exporter] Reusing layer 'buildpacksio/lifecycle:launcher'
[exporter] Reusing layer 'buildpacksio/lifecycle:config'
[exporter] Reusing layer 'buildpacksio/lifecycle:process-types'
[exporter] Adding label 'io.buildpacks.lifecycle.metadata'
[exporter] Adding label 'io.buildpacks.build.metadata'
[exporter] Adding label 'io.buildpacks.project.metadata'
[exporter] Adding label 'org.opencontainers.image.title'
[exporter] Adding label 'org.opencontainers.image.version'
[exporter] Adding label 'org.springframework.boot.version'
[exporter] Setting default process type 'web'
[exporter] Saving skaffold-buildpacks:latest...
[exporter] *** Images (3da633f394b3):
[exporter]       skaffold-buildpacks:latest
[exporter] Adding cache layer 'paketo-buildpacks/bellsoft-liberica:jdk'
[exporter] Adding cache layer 'paketo-buildpacks/syft:syft'
[exporter] Adding cache layer 'paketo-buildpacks/maven:application'
[exporter] Adding cache layer 'paketo-buildpacks/maven:cache'
[exporter] Adding cache layer 'paketo-buildpacks/maven:maven'
[exporter] Reusing cache layer 'buildpacksio/lifecycle:cache.sbom'
Build [skaffold-buildpacks] succeeded
Tags used in deployment:
 - skaffold-buildpacks -> skaffold-buildpacks:3da633f394b3d8bf756e5fae0d7ce89186843ed1eff57ca572f2544c47f3ff5f
Starting deploy...
 - service/web created
 - deployment.apps/web created
Waiting for deployments to stabilize...
 - kubernetes-dashboard:deployment/web: unable to determine current service state of pod "web-7c6dcfdf46-m7x5q"
    - kubernetes-dashboard:pod/web-7c6dcfdf46-m7x5q: unable to determine current service state of pod "web-7c6dcfdf46-m7x5q"
 - kubernetes-dashboard:deployment/web is ready.
Deployments stabilized in 20.855 seconds
Listing files to watch...
 - skaffold-buildpacks
Press Ctrl+C to exit
Watching for changes...
[web] Setting Active Processor Count to 6
[web] Calculating JVM memory based on 6769968K available memory
[web] For more information on this calculation, see https://paketo.io/docs/reference/java-reference/#memory-calculator
[web] Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx6175211K -XX:MaxMetaspaceSize=82756K -XX:ReservedCodeCacheSize=240M -Xss1M (Total Memory: 6769968K, Thread Count: 250, Loaded Class Count: 12197, Headroom: 0%)
[web] Enabling Java Native Memory Tracking
[web] Adding 124 container CA certificates to JVM truststore
[web] Spring Cloud Bindings Enabled
[web] Picked up JAVA_TOOL_OPTIONS: -Djava.security.properties=/layers/paketo-buildpacks_bellsoft-liberica/java-security-properties/java-security.properties -XX:+ExitOnOutOfMemoryError -XX:ActiveProcessorCount=6 -XX:MaxDirectMemorySize=10M -Xmx6175211K -XX:MaxMetaspaceSize=82756K -XX:ReservedCodeCacheSize=240M -Xss1M -XX:+UnlockDiagnosticVMOptions -XX:NativeMemoryTracking=summary -XX:+PrintNMTStatistics -Dorg.springframework.cloud.bindings.boot.enable=true
[web]
[web]   .   ____          _            __ _ _
[web]  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
[web] ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
[web]  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
[web]   '  |____| .__|_| |_|_| |_\__, | / / / /
[web]  =========|_|==============|___/=/_/_/_/
[web]  :: Spring Boot ::                (v2.7.4)
[web]
[web] 2023-03-07 04:19:31.119  INFO 1 --- [           main] hello.Application                        : Starting Application v0.1.0 using Java 11.0.18 on web-7c6dcfdf46-m7x5q with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
[web] 2023-03-07 04:19:31.133  INFO 1 --- [           main] hello.Application                        : No active profile set, falling back to 1 default profile: "default"
[web] 2023-03-07 04:19:33.755  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
[web] 2023-03-07 04:19:33.785  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
[web] 2023-03-07 04:19:33.786  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.65]
[web] 2023-03-07 04:19:34.060  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
[web] 2023-03-07 04:19:34.060  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2741 ms
[web] 2023-03-07 04:19:34.928  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
[web] 2023-03-07 04:19:34.942  INFO 1 --- [           main] hello.Application                        : Started Application in 5.026 seconds (JVM running for 10.487)
[web] 2023-03-07 04:20:42.742  INFO 1 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
[web] 2023-03-07 04:20:42.742  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
[web] 2023-03-07 04:20:42.743  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

访问 8080,试试

1
2
3
4
5
xfhuangskaffold  🍣 main 📝 ×2🛤️  ×2🐢 ×5via 🏎💨 v1.19.3 as 👩‍💻
⬢ [Systemd] 🌈 curl -L http://localhost:8080
curl: (7) Failed to connect to localhost port 8080 after 0 ms: Couldn't connect to server
(⎈|minikube:kubernetes-dashboard)
xfhuangskaffold  🍣 main 📝 ×2🛤️  ×2🐢 ×5v

查看编译的镜像多大:

1
docker image ls|grep skaffold-buildpacks

image-20230307124444117

run 一个 poeye

image-20230307133043577

参考文档:

https://github.com/paketo-buildpacks

https://skaffold.dev/docs/builders/builder-types/buildpacks/

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up