initial checkin
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
<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>com.inteligr8.container</groupId>
|
||||
<artifactId>base</artifactId>
|
||||
<version>${base.version}-${os.image.name}-${os.image.version}</version>
|
||||
<name>Base Image</name>
|
||||
<description>This is a purpose-agnostic base image</description>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<base.version>1.0</base.version>
|
||||
|
||||
<!-- The release version of Debian Linux to use as the base -->
|
||||
<!-- See: https://hub.docker.com/_/debian -->
|
||||
<os.image.prefix></os.image.prefix>
|
||||
<os.image.name>debian</os.image.name>
|
||||
<os.image.version>12.14</os.image.version>
|
||||
<os.image.suffix>-slim</os.image.suffix>
|
||||
|
||||
<!-- The Docker image meta-data for pushing the build -->
|
||||
<image.name>inteligr8/${project.artifactId}</image.name>
|
||||
<image.tag>${project.version}</image.tag>
|
||||
<image.registry>docker.inteligr8.com</image.registry>
|
||||
|
||||
<!-- using version properties so they can be overridden by child projects or Maven executions -->
|
||||
<kubernetes-maven-plugin.version>1.19.0</kubernetes-maven-plugin.version>
|
||||
<regex-maven-plugin.version>1.0.7</regex-maven-plugin.version>
|
||||
|
||||
<!-- these properties are only used in the container -->
|
||||
<image.containerd.directory>/opt/inteligr8/containerd</image.containerd.directory>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/containerd</directory>
|
||||
<filtering>true</filtering>
|
||||
<targetPath>${project.build.directory}/resources</targetPath>
|
||||
</resource>
|
||||
</resources>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.jkube</groupId>
|
||||
<artifactId>kubernetes-maven-plugin</artifactId>
|
||||
<version>${kubernetes-maven-plugin.version}</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.inteligr8</groupId>
|
||||
<artifactId>regex-maven-plugin</artifactId>
|
||||
<version>${regex-maven-plugin.version}</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.inteligr8</groupId>
|
||||
<artifactId>regex-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>determine-os-image-short-name</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>replace-property</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<property>os.image.name</property>
|
||||
<newProperty>os.image.shortName</newProperty>
|
||||
<regexes>
|
||||
<regex>
|
||||
<pattern>(.{3}).+</pattern>
|
||||
<replacement>$1</replacement>
|
||||
</regex>
|
||||
</regexes>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>determine-os-image-major-version</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>replace-property</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<property>os.image.version</property>
|
||||
<newProperty>os.image.majorVersion</newProperty>
|
||||
<regexes>
|
||||
<regex>
|
||||
<pattern>([^.]+).*</pattern>
|
||||
<replacement>$1</replacement>
|
||||
</regex>
|
||||
</regexes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals><goal>resources</goal></goals>
|
||||
<configuration>
|
||||
<encoding>utf-8</encoding>
|
||||
<propertiesEncoding>utf-8</propertiesEncoding>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- This plugin build and pushes the Docker image -->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.jkube</groupId>
|
||||
<artifactId>kubernetes-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<name>${image.name}:${image.tag}</name>
|
||||
<registry>${image.registry}</registry>
|
||||
<build>
|
||||
<contextDir>${project.build.directory}/resources</contextDir>
|
||||
<dockerFile>${project.basedir}/Containerfile</dockerFile>
|
||||
<tags>
|
||||
<tag>${base.version}-${os.image.shortName}${os.image.majorVersion}</tag>
|
||||
</tags>
|
||||
</build>
|
||||
</image>
|
||||
</images>
|
||||
<verbose>true</verbose>
|
||||
</configuration>
|
||||
<executions>
|
||||
<!-- This execution builds the Docker image -->
|
||||
<execution>
|
||||
<id>docker-build</id>
|
||||
<phase>package</phase>
|
||||
<goals><goal>build</goal></goals>
|
||||
</execution>
|
||||
<!-- This execution pushes the built Docker image to the configured Docker Registry -->
|
||||
<execution>
|
||||
<id>docker-push</id>
|
||||
<phase>deploy</phase>
|
||||
<goals><goal>push</goal></goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- This plugin prevents the project from deploying to the Maven Repository, as it is pointless -->
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>no-docker</id>
|
||||
<properties>
|
||||
<jkube.build.strategy>jib</jkube.build.strategy>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
Reference in New Issue
Block a user