win10下将spring cloud项目使用docker打包上传到指定仓库地址

环境:
操作系统:win10家庭版
Docker:Docker Windows 18.03.1-ce-win64

一.准备安装环境(如果是win10专业版或者企业版直接打开Hyper-v即可)

1. 开启Hyper-V
docker for windows要安装在win10专业版,并且要打开Hyperv,如果我们的电脑是家庭版就要做如下操作:
新建hyperv.cmd文件,内容如下:

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

以管理员身份执行hyperv.cmd文件。
如果系统要你重启,便重启。
在控制面板->程序和功能->启用或关闭Windows功能打开Hyper-V。
win10下将spring cloud项目使用docker打包上传到指定仓库地址_第1张图片
2. 伪装成win10专业版
以管理员身份打开cmd。
执行如下命令:

REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F

3. 下载Docker for Windows
国内镜像:
https://oomake.com/download/docker-windows (百度网盘)
https://mirrors.ustc.edu.cn/docker-ce/ (版本更新不及时)

下载后直接安装,安装时注意取消勾选window容器(默认不会勾选)。

Docker安装成功后,执行cmd命令docker version有输出版本号即表示安装成功

二.编写脚本打包项目

这里我用的demo项目是现在比较火的项目ruoyi-cloud, gite地址:https://gitee.com/y_project/RuoYi-Cloud.git(没有git自己安装下)
也可以自己找个练手的spring cloud项目,重点是打包流程
1.idea导入项目后,先确保自己要项目能正常运行,我这里使用dockerfile-maven-plugin插件打包
在pom文件里面加入下面的依赖

 <build>
        <finalName>ruoyi-gatewayfinalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <version>2.4.1version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackagegoal>
                        goals>
                    execution>
                executions>
            plugin>
            <plugin>
                <groupId>com.spotifygroupId>
                <artifactId>dockerfile-maven-pluginartifactId>
                <version>1.3.6version>
                <configuration>
                    <repository>dockerHub账号/dockerHub仓库repository>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jarJAR_FILE>
                    buildArgs>
                    <tag>${project.build.finalName}-1.0tag>
                configuration>
            plugin>
        plugins>
    build>

注意:
标签里表示你打包镜像要上传的的仓库名,后面我要将到本地打包的镜像上传到一个仓库让别人也可以拉取,注册一个dockerhub(https://hub.docker.com)账号并创建一个仓库,比如你dockerhub的账号是abc,创建的仓库名为123,那么 标签里就是 abc/123,如果这里错了后面使用docker push命令上传镜像到指定仓库就会失败
2.在要打包的项目根路径下编写Dockerfile文件
win10下将spring cloud项目使用docker打包上传到指定仓库地址_第2张图片
内容如下:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

3.打包镜像
系统变量里面新增变量DOCKER_HOST,变量值为tcp://${ip}:2375,我这里就是用的127.0.0.1
win10下将spring cloud项目使用docker打包上传到指定仓库地址_第3张图片
启动docker for windows,找到settings勾选下面的
win10下将spring cloud项目使用docker打包上传到指定仓库地址_第4张图片
以上都弄好后,在idea选择要打包的项目右键点击open in terminal打开终端
win10下将spring cloud项目使用docker打包上传到指定仓库地址_第5张图片
输入打包命令:mvn install dockerfile:build

打包好后docker images可以看到已经打包好的镜像,按照下面的格式推送镜像到指定仓库
docker push dockerhub账号/dockerhub仓库名:镜像tag
如果报错提示说要你登录就docker login登录后再执行上面的命令
4.编写compose.yaml文件使用docker-compose编排镜像(这是为了后面一键启动所有服务,不需要可以跳过,使用docker run 镜像id 即可启动)
编写compose.yaml文件,格式参考如下

version: '3'
services:
  ruoyi-gateway:
    image: dockerHub账号/dockerHub仓库:镜像tag名
    restart: always
    ports:
      - 8090:8090

  ruoyi-auth:
    image: dockerHub账号/dockerHub仓库:镜像tag名
    restart: always
    ports:
      - 8900:8900
  ruoyi-system:
    image: dockerHub账号/dockerHub仓库:镜像tag名
    restart: always
    ports:
      - 9201:9201

使用如下命令(-d表示后台启动)启动所有服务
docker-compose -f compose.yaml up -d
如果别人要拉取你仓库的镜像,使用docker pull dockerHub账号/dockerHub仓库:镜像tag名,来拉取镜像

你可能感兴趣的:(docker,spring,cloud)