阅读 67

Docker打包不过的分支并上传到镜像仓库


POM文件
<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <spring.profiles.active>dev</spring.profiles.active>
            <docker.repository>××××</docker.repository>
            <docker.tag>dev</docker.tag>
        </properties>
    </profile>
</profiles>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>build-info</goal>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>${dockerfile-maven-plugin.version}</version>
            <executions>
                <execution>
                    <id>docker</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>build</goal>
                        <goal>tag</goal>
                        <goal>push</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <repository>${docker.repository}</repository>
                <tag>${docker.tag}</tag>
                <!--指定dockerFIle文件的位置-->
                <contextDirectory>${project.build.directory}</contextDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${maven-resources-plugin.version}</version>
            <executions>
                <!--在mvn clean deploy -U -DskipTests=true -P yiye-two-test中,-P 也就是spring.profiles.active
                   将*.yml中的所有#spring.profiles.active#替换成yiye-two-test -->
                <execution>
                    <id>default-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/classes</outputDirectory>
                        <useDefaultDelimiters>false</useDefaultDelimiters>
                        <delimiters>
                            <delimiter>#</delimiter>
                        </delimiters>
                        <resources>
                            <resource>
                                <directory>src/main/resources/</directory>
                                <filtering>true</filtering>
                                <includes>
                                    <include>*.yml</include>
                                </includes>
                            </resource>
                            <resource>
                                <directory>src/main/resources/</directory>
                                <filtering>false</filtering>
                                <excludes>
                                    <exclude>*.yml</exclude>
                                </excludes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <!--将src/main/docker/下的dockerFile文件copy到target/下面-->
                <execution>
                    <id>docker-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>target/</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/docker/</directory>
                                <filtering>false</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>${maven-clean-plugin.version}</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin.version}</version>
        </plugin>
        <plugin>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>${maven-deploy-plugin.version}</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>

    </plugins>

</build>复制代码

yml文件


spring:
    application:
        name: yiye-Info
        version: #project.version#
    profiles:
        active: #spring.profiles.active#复制代码

复制代码

dockerfile-maven插件地址:

https://github.com/spotify/dockerfile-maven


复制代码

maven-resources-plugin:

https://maven.apache.org/plugins/maven-resources-plugin/plugin-info.html