In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)06/02 Report--
Order
This article mainly studies how to package docker images using google's jib.
Jib is Google's latest open source Docker image generation tool for Java applications, which can generate images directly through Gradle or Maven and upload them to the repository without the need for Dockerfile files or other plug-ins. Jib supports hierarchical packaging of resource files and classes, which can greatly improve the speed of image generation.
There are some other plug-ins that can also generate images through Docker, such as com.palantir.docker, but all need to be configured with additional Dockerfile. If the application only needs to build images through Dockerfile, it is recommended to use Jib to speed up construction and upload.
Maven
Com.google.cloud.tools jib-maven-plugin 0.9.9
Configuration
UTF-8 UTF-8 1.8 yyyyMMdd org.springframework.boot spring-boot-maven-plugin com.google.cloud.tools jib-maven-plugin 0.9.9-Xms512m 8080 True java:8u172-jre-alpine jib-demo:$ {maven.build.timestamp} true ${project.basedir} / src/main/jib
Here base image is specified as java:8u172-jre-alpine
Also specify that the generated image name is jib-demo:$ {maven.build.timestamp}
The container tag can specify relevant parameters, such as jvmFlags specifies the JVM parameter, and ports specifies the port number of expose
ExtraDirectory is used to specify the directory to be added. The default is ${project.basedir} / src/main/jib, that is, folders under this directory are created synchronously in the docker image. The directory hierarchy is based on the directory hierarchy under jib. For example, if there is app/resources/demo.txt in this directory, the corresponding mirror directory should be / app/resources/demo.txt.
Packing
Mvn compile jib:dockerBuild-X
When using jib:dockerBuild, the image is packaged locally, not push to the remote. The-X parameter is to display debug information.
If you use the jib:build command, push to the remote after packaging
Output log instance:
[DEBUG] TIMING Building image to Docker daemon [DEBUG] RUNNING Building image to Docker daemon [INFO] Getting base image java:8u172-jre-alpine... [DEBUG] TIMING Pulling base image manifest [DEBUG] RUNNING Pulling base image manifest [DEBUG] TIMING Building application layers [DEBUG] RUNNING Building application layers [INFO] Building dependencies layer... [DEBUG] TIMING Building dependencies layer [DEBUG] RUNNING Building dependencies layer [INFO] Building resources layer... [DEBUG] TIMING Building resources layer [DEBUG] RUNNING Building resources layer [INFO] Building classes layer... [ DEBUG] TIMING Building classes layer [DEBUG] RUNNING Building classes layer [INFO] Building extra files layer... [DEBUG] TIMING Building extra files layer [DEBUG] RUNNING Building extra files layer [DEBUG] TIMED Building application layers: 3.498 ms [DEBUG] Building application layers: 3.498 ms [DEBUG] Building extra files layer built sha256:0a9321c621ee2c138d9a93f4ba47f825e20dd7aca0e9206f30bf560122fdaa31 [DEBUG] Building resources layer built sha256:933116c8da4db70000355b750af2f3b5c4545e74db7b5eb0a5e37689ef86d44f [DEBUG] Building classes layer built sha256:a99dbde7d015ba3d15b9265ac38f6536d65b00dd2a864b7003a34742f483939b [DEBUG] TIMED Building extra files layer: 33.718 ms [DEBUG] TIMED Building classes layer: 33.901 ms [DEBUG ] Building extra files layer: 33.718 ms [DEBUG] TIMED Building resources layer: 34.062 ms [DEBUG] Building resources layer: 34.062 ms [DEBUG] Building classes layer: 33.901 ms [DEBUG] Building dependencies layer built sha256:a19961ec08095eb70ca3a070945223dcf51500a255a745272276139bf0a29f4e [DEBUG] TIMED Building dependencies layer: 1047.83 ms [DEBUG] Building dependencies layer: 1047.83 ms [INFO] The base image requires auth. Trying again for java:8u172-jre-alpine...//. [DEBUG] TIMED Pulling base image manifest: 8959.891 ms [DEBUG] Pulling base image manifest: 8959.891 ms [DEBUG] TIMING Setting up base image caching [DEBUG] RUNNING Setting up base image caching [DEBUG] TIMED Setting up base image caching: 0.824 ms [DEBUG] Setting up base image caching: 0.824 ms [DEBUG] TIMING Pulling base image layer sha256:500c0ac4cdc58aee9a008e70466eeec8a4b74b25c29d003764635d2fe1b42827 [DEBUG] RUNNING Pulling base image layer sha256:500c0ac4cdc58aee9a008e70466eeec8a4b74b25c29d003764635d2fe1b42827 [DEBUG] TIMING Pulling base image Layer sha256:aa38cd8c77d7320c7489327775e074580db5f23467198aab3e79c7db5cdfbdca [DEBUG] TIMING Pulling base image layer sha256:cb56d62302ec31640b40ca15843e7af6be145966a1064c78ea7afd6f10ce49e6 [DEBUG] RUNNING Pulling base image layer sha256:cb56d62302ec31640b40ca15843e7af6be145966a1064c78ea7afd6f10ce49e6 [DEBUG] TIMING Pulling base image layer sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28 [DEBUG] RUNNING Pulling base image layer sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28 [DEBUG] RUNNING Pulling base image layer sha256:aa38cd8c77d7320c7489327775e074580db5f23467198aab3e79c7db5cdfbdca [DEBUG] TIMED Pulling base image layer sha256:500c0ac4cdc58aee9a008e70466eeec8a4b74b25c29d003764635d2fe1b42827: 612.524 ms [DEBUG] Pulling base image layer sha256:500c0ac4cdc58aee9a008e70466eeec8a4b74b25c29d003764635d2fe1b42827: 612.524 ms [DEBUG] TIMED Pulling base image layer sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28: 9985.702 ms [DEBUG] Pulling base image layer sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28: 9985.702 Ms [DEBUG] TIMED Pulling base image layer sha256:aa38cd8c77d7320c7489327775e074580db5f23467198aab3e79c7db5cdfbdca: 27267.144 ms [DEBUG] Pulling base image layer sha256:aa38cd8c77d7320c7489327775e074580db5f23467198aab3e79c7db5cdfbdca: 27267.144 ms [DEBUG] TIMED Pulling base image layer sha256:cb56d62302ec31640b40ca15843e7af6be145966a1064c78ea7afd6f10ce49e6: 54734.971 ms [DEBUG] Pulling base image layer sha256:cb56d62302ec31640b40ca15843e7af6be145966a1064c78ea7afd6f10ce49e6: 54734.971 ms [DEBUG] TIMING Building container configuration [DEBUG] RUNNING Building container configuration [INFO] Finalizing... [DEBUG] TIMED Building container configuration: 0.462 ms [DEBUG] Building container configuration: 0.462 ms [INFO] Loading to Docker daemon... [DEBUG] TIMED Building image to Docker daemon: 65862.956 ms [DEBUG] Building image to Docker daemon: 65862.956 ms [INFO] [INFO] Container entrypoint set to [java -Xms512m,-cp, / app/resources/:/app/classes/:/app/libs/* Com.example.JibDemoApplication] [INFO] [INFO] Built image to Docker daemon as jib-demo:20180826 [INFO] [INFO]-[INFO] BUILD SUCCESS [INFO]- -[INFO] Total time: 01:07 min [INFO] Finished at: 2018-08-26T21:38:11+08:00 [INFO] Final Memory: 26M/493M [INFO]-
View Mirror
Docker inspect jib-demo:20180826 [{"Id": "sha256:7554492dde84091bc6d015b29ec4bf854bb841b9ec4d8f7bef8b51a8ec59ef94", "RepoTags": ["jib-demo:20180826"], "RepoDigests": [], "Parent": "", "Comment": "", "Created": "2018-08-26T13:37:05.65Z", "Container": "," ContainerConfig ": {" Hostname ":" "Domainname": "," User ":", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": null, "Cmd": null, "Image": "", "Volumes": null, "WorkingDir": "" "Entrypoint": null, "OnBuild": null, "Labels": null}, "DockerVersion": "", "Author": "", "Config": {"Hostname": "," Domainname ":", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false "ExposedPorts": {"8080/tcp": {}}, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": ["PATH=/opt/jdk1.8.0_172/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "JAVA_HOME=/opt/jdk1.8.0_172"], "Cmd": [], "Image": "," Volumes ": null," WorkingDir ":"," Entrypoint ": [" java ","-Xms512m ","-cp "," / app/resources/:/app/classes/:/app/libs/* " "com.example.JibDemoApplication"], "OnBuild": null, "Labels": {}}, "Architecture": "amd64", "Os": "linux", "Size": 186079594, "VirtualSize": 186079594, "GraphDriver": {"Data": null, "Name": "aufs"}, "RootFS": {"Type": "layers" "Layers": ["sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215", "sha256:317e0b42ef29551507adc792c2dbc389af85c5d68900cf0f08abe907cbd4e199", "sha256:d6fd5302a9ee64c43b46153e9678153819d6d0e247381acbbe6cbe6ed9de0366", "sha256:417c6bd0930eb69d17ae5d601898a6a012900ca33c69e612840a3042b2451cbb", "sha256:8309a5eed5158c5639acb664312ddc7027a2ecb172744f548d6d9fb5f918a744", "sha256:6ef8c795d7a5e2a07f51d572a90b820e089f89adf30798193f4f3f410a261415", "sha256:9990447f3d37e3f2dc70718d0ea6602cf7843091d8bbe395f552c9c5dd10551c", "sha256:ff7910aaeee962d1d86e00742030378a2758da59d8c8cda3fe44314bbddd8081"]}, "Metadata": {"LastTagTime": "0001-01-01T00:00:00Z"}}]
You can see that java-cp specifies three folders: / app/libs/, / app/resources/, / app/classes/
Summary
Jib does the following by default
COPY libs/ app/libs/COPY resources/ app/resources/COPY classes/ app/classes/
That is, copy libs to / app/libs, resources to / app/resources, and classes to / app/classes.
Doc
JibBuilding Docker Image for a Spring Boot App With Jibbuild-containers-faster-with-jib-a-google-image-build-tool-for-java-applications
The above is the whole content of this article, I hope it will be helpful to your study, and I also hope that you will support it.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.