spring-boot構建docker映象上傳倉庫
阿新 • • 發佈:2022-12-07
spring-boot構建docker映象上傳倉庫
建立一個簡單spring-boot-web專案
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEASE</version> </parent> <groupId>com.example</groupId> <artifactId>spring-boot-docker-demo</artifactId> <version>1.0.0</version> <properties> <jave.version>1.8</jave.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>1.8.0</version> <configuration> <from> <!-- 拉取基礎映象 --> <image>openjdk:8-jdk-alpine</image> </from> <to> <!-- 格式:官方docker hub->使用者名稱/映象名 --> <!-- 格式:阿里雲容器映象服務->registry.cn-hangzhou.aliyuncs.com/服務空間/映象名 --> <image>registry.cn-hangzhou.aliyuncs.com/服務空間/${project.name}</image> <!-- 映象版本號 --> <tags> <tag>latest</tag> <tag>${project.version}</tag> </tags> <auth> <username>使用者名稱</username> <password>密碼</password> </auth> </to> <container> <!-- 啟動類 --> <mainClass>啟動類地址</mainClass> <useCurrentTimestamp>use</useCurrentTimestamp> <!-- 服務暴露的埠 --> <ports> <port>8080</port> </ports> </container> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
準備工作
- 建立docker倉庫映象工程
- 配置docker hub push引數
執行
檢視映象上傳倉庫
思考
這時候我們發現當前倉庫資訊明文暴露在專案中,這時候又要怎麼處理,讓其提高安全性。
方案1
mvn compile com.google.cloud.tools:jib-maven-plugin:1.8.0:build -Djib.to.auth.username=user -Djib.to.auth.password=pass -Dimage=<MY IMAGE>
方案2
使用maven設定,只在本地可用
<settings> ... <servers> ... <server> <id>MY_REGISTRY</id> <username>MY_USERNAME</username> <password>{MY_SECRET}</password> </server> </servers> </settings>