阿里云服务器docker部署若依后端

在若依官网下载若依前后端分离

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

完整版Java——Linux使用Docker部署若依前后端分离版【保姆级教程】_若依 docker部署-CSDN博客 

 配置后端

在application.yml配置后端端口和redis

5842c87bf31d4083a44aded9ca57152d.png

49c410af8307476fbc0449fbba54ee22.png

9f3f9a57f6b84333a305f161542d67e8.png

点击云服务器ECS,点击实例,在实例的基本信息查看服务器内网IP

edc81db4665349d996f4f3241a26f702.png

 

在application-druid.yaml下配置数据库

7b9640d4386d4569a6b8a04ed19ad62c.png

打包jar

e4a81edb02ce4869abe72360baf2208c.png

打包后ruoyi-admin下的target会出现ruoyi-admin.jar

32b82bdaff464cd389eb0c34fba1f15a.png

将该jar包放到服务器上

0277d2ebd31e4d5b827b6fa186675c84.png

docker 部署ruoyi-admin.jar

编写文件Dockerfile

#基础镜像
FROM java:8
# 设定时区 设置了环境变量 上海的时区  可以不要
ENV TZ=Asia/Shanghai
#本地时间设置为指定的时区 可以不要
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包 将ruoyi-admin.jar文件复制到Docker镜像的根目录下,并重命名为app.jar/自定义名称.jar
# COPY 和ADD 一样
COPY ruoyi-admin.jar /app.jar
#暴露端口 与后端端口一致
EXPOSE 8070
# 入口                        自定义名称.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

构建镜像

docker build -t ruoyi-admin .

将构建Dockerfile的镜像命名为ruoyi-admin 。可以自定义镜像名,此时我的镜像库没有java8

c6bdf62026ad4f3bb06c5d3802a5fddd.png

创建容器

docker run -d --name ruoyi -p 8070:8070 ruoyi-admin

创建一个名为ruoyi的容器来自ruoyi-admin镜像 端口8070 后台启动

查看是否启动成功

docker logs -f ruoyi

docker logs -f 容器名 查看日志

de1d7db65e7545eda4188a437baa8501.png

ctrl c

退出 

通过网页访问

8766d4d502a24decaa82be5f2b47a52e.png

在已经准备好的基础镜像下进行构架若依后端镜像

我的docker镜像库已经有了Java JDK  

dbbbbf717dbf4eea97f7a6206c397213.png

进行构建镜像

a06667800b074a9e9a8039b4e240caaa.png

docker build -t ruoyi-admin:1.0 .

ruoyi-admin:版本号,删除镜像和创建容器记得添加版本号

98f71c3ca0eb4e3f83638caa9cbad466.png

可以看到镜像大小为385MB,与上面没有基础镜像进行构建少很多。

原因应该是如果没有基础镜像,会将基础镜像和构建的镜像整合到一起。

如何查看docker根目录中的app.jar

如将ruoyi-admin.jar 拷贝为app.jar 并将app.jar放到docker根目录

find / -name "app.jar" 2>/dev/null

查看所有名为app.jar的文件。

 cb3a703f5068451ca144965b14803eb9.png

可以看到我的docker目录下有很多app.jar,但我已经把app.jar对应的镜像已经清除了。说明清除镜像并不能删除全部镜像文件。

docker system prune

清除所有没有未被打标签的镜像(docker images 查不到的)、未使用的容器、未使用的网络和卷。(谨慎使用)

或者手动删除,通过地址找到对应的镜像文件全部删除。

 

 

 

### 使用 Docker 部署若依系统前后端分离教程 #### 安装必要的组件 为了顺利部署若依系统,需要先安装 DockerDocker Compose。可以通过阿里云镜像仓库来加速下载过程[^3]。 ```bash yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` 更新 yum 软件包索引并安装 Docker 引擎及相关工具: ```bash yum makecache fast yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` 启动 Docker 服务并验证其状态: ```bash systemctl start docker docker version ``` #### 准备环境配置文件 对于若依系统的前端部分,通常会有一个 `nginx` 的配置文件用于反向代理请求至后端 API 接口;而后端则可能依赖 MySQL 数据库存储数据。因此建议创建如下结构的项目根目录 `/root/ruoyi-docker` 下面放置不同子模块所需的资源文件[^4]。 - `/root/ruoyi-docker/nginx`: Nginx 反代配置以及静态页面打包成果。 - `/root/ruoyi-docker/backend`: 后端应用及其依赖项(如 Maven 构建所需 jar/war 文件)。 - `/root/mysql/init`: 初始化 SQL 脚本路径,该位置下的 `.sql` 文件会在首次运行时自动执行以完成数据库表结构建立工作。 #### 编写 Dockerfile 或者 docker-compose.yml 文件 针对上述三个主要组成部分分别编写对应的构建描述文档或组合定义文件。下面给出一个简单的例子展示如何通过单个 `docker-compose.yml` 来管理整个应用程序栈: ```yaml version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: ruoyidb MYSQL_USER: user MYSQL_PASSWORD: password volumes: - /root/mysql/init:/docker-entrypoint-initdb.d ports: - "3306:3306" backend: build: ./backend depends_on: - db environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/ruoyidb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 SPRING_DATASOURCE_USERNAME: user SPRING_DATASOURCE_PASSWORD: password frontend: build: ./frontend depends_on: - "80:80" volumes: db_data: networks: default: driver: bridge ``` 此配置说明了如何设置 MySQL、后端 Java 应用程序和前端 Web 服务器之间的关系,并指定了它们之间通信所必需的一些参数。注意这里的 `depends_on` 字段用来指定服务间的依赖顺序,确保每次重启时都能按照正确的次序加载各个容器实例[^1]。 最后一步就是进入包含有 `docker-compose.yml` 文件所在的目录下执行命令启动所有关联的服务: ```bash cd /root/ruoyi-docker docker-compose up -d ``` 这将会以后台模式拉取必要镜像并依次启动各服务节点。此时访问浏览器输入 IP 地址即可看到正常工作的若依管理系统界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值