使用本地IDEA连接服务器远程构建部署Docker服务

一、前置准备工作

1.1 安装配置docker

  1. 本机电脑上安装:docs.docker.com/desktop/set... 2)
  2. 目标服务器(Linux)安装Docker :

暂时无法在飞书文档外展示此内容

  1. 配置docker国内镜像源/代理
bash 复制代码
sudo vim /etc/docker/daemon.json

添加所需要镜像:
{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ]
}
  1. 重启docker,注意由于走的是守护程序daemon,所以daemon进程也需要重启。
bash 复制代码
sudo systemctl daemon-reload                 #重启daemon进程
sudo systemctl restart docker                 #重启docker

PS:详细的docker国内镜像源配置及代理设置

blog.csdn.net/Lichen0196/...

1.2 IDEA连接远程服务器和docker

配置FTP连接

连接远程服务器中的docker,选用ssh连接

二、操作流程

2.1 目标服务器拉去源代码

  1. 创建工作目录
bash 复制代码
mkdir /root/项目名-docker
mkdir /root/项目名-docker/source-code
mkdir /root/项目名-docker/build-docker-images
mkdir /root/项目名-docker/deploy
cd /root/项目名-docker/source-code
  1. git clone 仓库名地址

2.2 应用构建编译打包

  1. Java后端服务ruoyi-ai.jar包文件构建

    1. (1) 修改application-prod.yml 内容:
  1. IDEA构建编译Jar包

(1)IDEA中的Maven中,勾选prod

(2)同步Maven 更改

(3)执行Clean--package

在target目录中会生成 ruiyi-admin.jar

  1. 构建业务容器镜像

(1)构建完jar包后,在ruoyi-admin目录下,创建Dockerfile文件,内容如下:

bash 复制代码
FROM openjdk:17-jdk

RUN mkdir -p /ruoyi/server/logs \
    /ruoyi/server/temp

WORKDIR /ruoyi/server
COPY ./target/ruoyi-admin.jar ./ruoyi-admin.jar

ENTRYPOINT ["java","-jar","ruoyi-admin.jar"]

(2)连接目标服务器 中的docker,依据本地IDEA 中的Dockerfile配置创建镜像。创建镜像前可进行配置,

若勾选存储为项目文件,则会在根目录下创建.run文件夹

(3)在IDEA服务中指定对应的docker配置点击运行则会在目标服务器的docker中构建出相应的镜像;

2.3 运行业务容器

  1. 进入含有docker-compose.yaml 目录中,修改docker-compose.yaml, 指定创建容器所使用的镜像

前提:运行业务服务之前需要先运行基础服务,如: mysql 、redis、nginx等。

使用命令:docker-compose up -d mysql nginx-web redis minio

  1. 运行业务容器
css 复制代码
docker compose up --no-deps -d ruoyi-backend
相关推荐
Victor3566 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor3566 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术8 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
Gogo8169 小时前
BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?
后端
fuquxiaoguang9 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
lpruoyu9 小时前
【Docker进阶-03】存储原理
docker·容器
毕设源码_廖学姐10 小时前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计
文静小土豆10 小时前
Docker 与 containerd 代理配置详解:镜像拉取速度慢的终极解决方案
运维·docker·容器
野犬寒鸦11 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
JY.yuyu12 小时前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器