微服务之构建服务镜像

在上一篇微服务之搭建nexus私服中,我们使用nexus搭建了私服。下面我们将spring boot工程来构建镜像并push到nexus私服中。

创建Dockerfile文件

FROM gradle:3.5-jre8
COPY ./build/libs/goods-service-0.0.1-SNAPSHOT.jar /app/goods-service-0.0.1-SNAPSHOT.jar
WORKDIR /app
CMD ["-jar", "goods-service-0.0.1-SNAPSHOT.jar"]
  • From指定了基础镜像。由于工程使用gradle作为构建工具,所以使用gradle:3.5-jre8作为基础镜像。当然可以自行选择版本。
  • COPY 会将build(见下面)到jar包copy到容器到app目录中
  • WORKDIR指定工作目录
  • CMD就是容器再启动到时候运行到命令。

创建镜像构建脚本

脚本名为build.sh

#! /usr/bin/env bash
PRIVATE_REPO=127.0.0.1:5000
echo "123"
build(){
    ./gradlew clean build
    docker login ${PRIVATE_REPO} -u admin -p admin123
    docker build -t ${PRIVATE_REPO}/mst-goods-service .
    docker push ${PRIVATE_REPO}/mst-goods-service
    docker rmi ${PRIVATE_REPO}/mst-goods-service
}

case $1 in
    build)
        build
        ;;
esac

PRIVATE_REPO变量指定了nexus私服地址。
build方法到执行过程为:

  1. 运行gradle命令build工程
  2. 运行docker build命令来创建镜像
  3. 将镜像push到nexus私服
  4. 删除掉本地到镜像

运行sh ./build.sh build 命令就可以构建服务镜像并push到nexus中。如果我们需要部署服务,就可以在私服中pull镜像并运行。

猜你喜欢

转载自blog.csdn.net/zhaoruda/article/details/81814034