idea基于docker desktop 打包镜像

17秒前 234阅读

idea基于docker desktop 打包镜像

    • 安装 docker desktop
    • idea 安装docker 插件
    • 创建Dockerfile文件
    • 将jar包复制到 Dockerfile 同一目录
    • 为idea配置docker环境
    • 构建镜像
    • 保存Docker 镜像为 tar 文件
    • 导入镜像到生产环境
    • 启动镜像

      安装 docker desktop

      我的是windows10, 从官网下载的 docker desktop 无法安装, 报错:

      We've detected that you have an incompatible version of Windows.
      Docker Desktop requires Windows 10 Pro/Enterprise/Home version 19044 or above.
      To continue with the installation, upgrade Windows to a supported version and then re-run the installer.
      这个提示表明你的 Windows 版本不符合 Docker Desktop 的最低要求。
      Docker Desktop 要求运行的 Windows 版本是 Windows 10 Pro、Enterprise 或 Home 版本,
      并且版本号需要是 19044 或以上。
      

      下面的连接, 可以下载旧版本的 docker desktop , 可以正常安装

      国内docker desktop镜像下载

      【全面详细】Windows10 Docker安装详细教程

      安装完成后, 等下idea需要通过Docker for windows选择来链接docker环境生成镜像

      idea 安装docker 插件

      idea基于docker desktop 打包镜像

      创建Dockerfile文件

      在项目根目录创建文件夹: docker

      在文件夹下创建文件: Dockerfile

      # 项目运行需要jdk环境, 会先拉取一个jdk镜像
      FROM openjdk:8-jre
      # 镜像的维护人
      LABEL maintainer="vxdata"
      # 指定时区为亚洲/上海
      ENV TZ=Asia/Shanghai
      # 设置容器的时区为亚洲/上海,并且将此时区信息写入了 /etc/timezone 文件
      RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
      # 创建数据卷
      VOLUME /home/vxdata
      # 创建容器内的目录
      RUN mkdir -p /home/vxdata
      # 设置容器的工作目录为 /home/vxdata,所有后续的命令都会在这个目录下执行。
      WORKDIR /home/vxdata
      # 复制主机上Dockerfile目录下得jar到容器内
      COPY ./ruoyi-admin.jar /home/vxdata/ruoyi-admin.jar
      # 创建容器内的目录
      RUN mkdir -p /home/vxdata/logs
      # 定义了容器启动时默认执行的命令
      CMD ["java", "-Xss2M", "-jar", "ruoyi-admin.jar", ">>", "/home/vxdata/logs/out.txt", "2>>", "/home/vxdata/logs/error.txt"]
      

      将jar包复制到 Dockerfile 同一目录

      打开Dockerfile文件目录, 进入cmd,执行命令

      # 我这里使用的是相对路径,你可以根据你得项目结构自行更改
      copy "..\..\ruoyi-admin\target\ruoyi-admin.jar" .
      

      为idea配置docker环境

      idea基于docker desktop 打包镜像

      idea基于docker desktop 打包镜像

      idea基于docker desktop 打包镜像

      构建镜像

      idea基于docker desktop 打包镜像

      打开Dockerfile文件目录, 进入cmd,执行命令

      docker build -t kg-image:1.0.1 .
      解释
      kg-image  docker的REPOSITORY
      1.0.1     docker的TAG
      .         当前目录下的Dockerfile文件
      

      执行结果

      D:\Program Files\JetBrains\work\gitlab\知识谱图\docker\jar>docker build -t kg-image:1.0.1 .
      [+] Building 2.3s (11/11) FINISHED
       => [internal] load build definition from Dockerfile                0.0s
       => => transferring dockerfile: 952B                                0.0s
       => [internal] load .dockerignore                                   0.0s
       => => transferring context: 2B                                     0.0s
       => [internal] load metadata for docker.io/library/openjdk:8-jre    0.0s
       => [1/6] FROM docker.io/library/openjdk:8-jre                      0.0s
       => [internal] load build context                                   2.1s
       => => transferring context: 299.85MB                               2.1s
       => CACHED [2/6] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezo  0.0s
       => CACHED [3/6] RUN mkdir -p /home/vxdata                          0.0s
       => CACHED [4/6] WORKDIR /home/vxdata                               0.0s
       => CACHED [5/6] COPY ./ruoyi-admin.jar /home/vxdata/ruoyi-admin.jar0.0s
       => CACHED [6/6] RUN mkdir -p /home/vxdata/logs                     0.0s
       => exporting to image                                              0.0s
       => => exporting layers                                             0.0s
       => => writing image sha256:0e42a9e01330eea9622eb57adac43322b71783eed723e85c2e4ac6e574800479                       0.0s
       => => naming to docker.io/library/kg-image:1.0.1                   0.0s
      Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
      D:\Program Files\JetBrains\work\gitlab\知识谱图\docker\jar>docker images
      REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
      kg-image     1.0.1     0e42a9e01330   42 minutes ago   573MB
      openjdk      8-jre     0c14a0e20aa3   20 months ago    274MB
      

      保存Docker 镜像为 tar 文件

      保存镜像到当前目录

      docker save -o kg-image.tar kg-image:1.0.1
      
      docker save 是 Docker 命令,用于将 Docker 镜像保存到一个文件中。
      -o kg-image.tar 指定了输出文件的名称为 kg-image.tar,-o 参数用于指定输出文件。
      kg-image:1.0.1 指定了要保存的 Docker 镜像的名称及标签。
      

      导入镜像到生产环境

      docker load -i kg-image.tar
      

      启动镜像

      #!/bin/bash
      docker run -d \
        --name kg \
        -p 8080:8080 \
        -v /home/vxdata/uploadPath:/home/vxdata/uploadPath \
        -v /home/vxdata/logs:/home/vxdata/logs \
        -v /home/vxdata/application.yml:/home/vxdata/application.yml \
        kg-image:1.0.0
      # 检查容器启动日志
      echo "检查容器启动日志..."
      sleep 3 # 等待几秒钟以确保容器已启动
      docker logs kg
      
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]