diff options
| author | wangwei <[email protected]> | 2024-09-14 10:06:32 +0800 |
|---|---|---|
| committer | wangwei <[email protected]> | 2024-09-14 10:06:32 +0800 |
| commit | 4849e142e0bb614d30ca95378d37ed701ab869dd (patch) | |
| tree | ad398b0fb6e4903f7c7f577f73c753f4bbc4d414 | |
| parent | 91864926aa9d34137754bbadcefe1a7452b752e9 (diff) | |
[Feature][docker] 支持 fabric8 docker-maven-plugin 构建多平台镜像(GAL-633)br-feature-platforms
| -rw-r--r-- | .gitlab-ci.yml | 27 | ||||
| -rw-r--r-- | docker/assembly.xml | 19 | ||||
| -rw-r--r-- | pom.xml | 70 |
3 files changed, 66 insertions, 50 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 96f075d..72902fc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,9 @@ +image: 192.168.40.153:8082/common/docker:26.1.4-maven-3.8.8-amazon-corretto-11-alpine + variables: MAVEN_CLI_OPTS: --batch-mode --errors --show-version SONAR_HOST_URL: http://192.168.40.153:9900 SONAR_PROJECT_KEY: saved-query-scheduler - SONAR_LOGIN_TOKEN: 921363353ba26a612fc4ec77679647780f9a46e7 stages: - build @@ -14,35 +15,33 @@ build: script: - echo 'exec mvn clean package' - echo 'tag:' $CI_COMMIT_TAG - - mvn clean package -Dmaven.test.skip=true + - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml + - mvn $MAVEN_CLI_OPTS clean package -DskipTests only: - tags - tags: - - galaxy + clean: stage: clean script: - echo 'build job fail, exec mvn clean' - echo 'tag:' $CI_COMMIT_TAG - - mvn clean + - mvn $MAVEN_CLI_OPTS clean when: on_failure only: - tags - tags: - - galaxy + deploy: stage: deploy script: - echo 'exec mvn package & docker build' - echo 'tag:' $CI_COMMIT_TAG - - |- + - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml + - |- mvn $MAVEN_CLI_OPTS clean verify sonar:sonar -Dsonar.projectKey=$SONAR_PROJECT_KEY \ - -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN_TOKEN \ - -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 - - mvn clean package -Dmaven.test.skip=true docker:build -DdockerImageTags=$CI_COMMIT_TAG + -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN_TOKEN \ + -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=300 + - mvn clean package -Dmaven.test.skip=true docker:build docker:push -Dv=$CI_COMMIT_TAG when: on_success only: - - tags - tags: - - galaxy
\ No newline at end of file + - tags
\ No newline at end of file diff --git a/docker/assembly.xml b/docker/assembly.xml new file mode 100644 index 0000000..132b78d --- /dev/null +++ b/docker/assembly.xml @@ -0,0 +1,19 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.2.0 http://maven.apache.org/xsd/assembly-2.2.0.xsd"> + + <fileSets> + <fileSet> + <directory>${project.build.directory}</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>${project.build.finalName}.xjar</include> + <include>xjar.go</include> + </includes> + </fileSet> + <fileSet> + <directory>config</directory> + <outputDirectory>/config</outputDirectory> + </fileSet> + </fileSets> +</assembly> @@ -334,46 +334,44 @@ </executions> </plugin> <plugin> - <groupId>com.spotify</groupId> + <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> - <version>1.0.0</version> + <version>0.45.0</version> <configuration> - <serverId>153-nexus-docker-repo</serverId> - <registryUrl>${docker.registry}:${docker.registry.port}</registryUrl> - <pushImage>true</pushImage> - <forceTags>true</forceTags> - <imageName>${docker.registry}:${docker.registry.port}/${docker.image.prefix}/${project.artifactId} - </imageName> <dockerHost>http://${docker.build}:${docker.build.port}</dockerHost> - <dockerDirectory>docker</dockerDirectory> - <buildArgs> - <JDK_IMAGE>${docker.registry}:${docker.registry.port}/common/amazon-corretto:11.0.21.9.1-alpine3.18</JDK_IMAGE> - <GO_IMAGE>${docker.registry}:${docker.registry.port}/common/golang:1.15.6</GO_IMAGE> - <JAR_FILE>${project.build.finalName}.xjar</JAR_FILE> - </buildArgs> - <imageTags> - <imageTag>22.12.07</imageTag> - </imageTags> - <resources> - <resource> - <targetPath>/</targetPath> - <directory>${project.build.directory}</directory> - <include>${project.build.finalName}.xjar</include> - <include>xjar.go</include> - </resource> - <resource> - <targetPath>/config</targetPath> - <directory>config</directory> - </resource> - </resources> + <registry>${docker.registry}:${docker.registry.port}</registry> + <images> + <image> + <name> + ${docker.registry}:${docker.registry.port}/${docker.image.prefix}/${project.artifactId}:${v} + </name> + <build> + <assembly> + <name>/</name> + <descriptor>${project.basedir}/docker/assembly.xml</descriptor> + </assembly> + <args> + <JDK_IMAGE> + ${docker.registry}:${docker.registry.port}/common/amazon-corretto:11.0.21.9.1-alpine3.18-multi + </JDK_IMAGE> + <GO_IMAGE> + ${docker.registry}:${docker.registry.port}/common/golang:1.15.6-multi + </GO_IMAGE> + <JAR_FILE> + ${project.build.finalName}.xjar + </JAR_FILE> + </args> + <dockerFile>${project.basedir}/docker/Dockerfile</dockerFile> + <buildx> + <builderName>olap_builder</builderName> + <platforms> + <platform>linux/amd64,linux/arm64</platform> + </platforms> + </buildx> + </build> + </image> + </images> </configuration> - <dependencies> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - <version>1.1.1</version> - </dependency> - </dependencies> </plugin> <plugin> <groupId>org.jacoco</groupId> |
