容器化部署Docker镜像打包

DBC 1.6K 0
  • 微服务采用容器化部署->本地推送镜像到镜像仓库->Paas容器云管理平台拉取部署
  • SpringBoot打包插件配置
    • 聚合工程pom添加全局变量

 

   <docker.image.prefix>xdclass-cloud</docker.image.prefix>

容器化部署Docker镜像打包插图


在需要打包的地方加上
每个微服务都添加依赖(服务名记得修改)

    <build>
        <finalName>alibaba-cloud-coupon</finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>

                <!--需要加这个,不然打包镜像找不到启动文件-->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>

                </configuration>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <configuration>

                    <repository>${docker.image.prefix}/${project.artifactId}</repository>

                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>

        </plugins>

    </build>

容器化部署Docker镜像打包插图2

创建文件Dockerfile
FROM registry.aliyuncs.com/distroless/java
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

如果有验证码相关,用下面这个,要不验证码不显示

FROM frolvlad/alpine-oraclejdk8:slim
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

多个微服务本地镜像打包

  • 步骤一:最外层 mvn clean install
  • 步骤二:去到子模块pom文件下
mvn install -Dmaven.test.skip=true dockerfile:build

发表评论 取消回复
表情 图片 链接 代码

分享