目錄
- spring-boot構建docker鏡像上傳倉庫
- 創建一個簡單spring-boot-web項目
- 準備工作
- 執行
- 查看鏡像上傳倉庫
- 思考
- 方案1
- 方案2
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>