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

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

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

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

 配置后端

在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 查不到的)、未使用的容器、未使用的网络和卷。(谨慎使用)

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

 

 

 

### 将Vue和Spring Boot应用通过Docker部署阿里云服务器 #### 准备工作 为了成功完成此过程,需准备如下资源: - **阿里云服务器**一台作为运行环境的基础[^1]。 - 安装并配置好`Xshell`和`Xftp`用于远程连接和文件传输工具[^3]。 #### 构建与打包应用程序 对于前端部分即Vue项目,在开发完成后应构建生产版本。进入项目的根目录执行命令来生成静态资源文件夹`dist`: ```bash npm run build ``` 针对后端即Spring Boot程序,则要确保其能够被打包成一个可独立运行的JAR文件。通常情况下是在IDE内或是通过Maven/Gradle插件实现自动化打包流程。 #### Dockerfile编写 ##### Spring Boot 应用的 `Dockerfile` 在Spring Boot项目的根路径下创建名为`Dockerfile`的文本文件,并写入以下内容以便于将其构建成Docker镜像: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` ##### Vue 应用的 `Dockerfile` 同样地,在Vue项目的根目录建立另一个`Dockerfile`,用来定义如何将编译后的前端页面封装至Nginx服务之中: ```dockerfile # 使用官方Node.js基础映像构建阶段 FROM node:lts as builder WORKDIR /app COPY package*.json ./ RUN npm install --silent && mv node_modules ../ COPY . . RUN npm run build # 利用官方Nginx映像发布阶段 FROM nginx:alpine EXPOSE 80 COPY ./nginx.conf /etc/nginx/conf.d/default.conf COPY --from=builder /app/dist /usr/share/nginx/html CMD ["nginx", "-g", "daemon off;"] ``` 这里假设已经有一个自定义的`nginx.conf`位于项目根目录中,它指定了如何处理HTTP请求并将它们路由给正确的HTML/CSS/JS资产。 #### 编写 `docker-compose.yml` 为了让前后端可以更便捷地一起启动起来,推荐使用Docker Compose来进行多容器协调管理。下面是一个简单的例子说明怎样设置这个YAML格式的组合描述文档: ```yaml version: '3' services: backend: image: your-backend-image-name ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/your_db_name?useSSL=false&serverTimezone=UTC SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: password depends_on: - db frontend: image: your-frontend-image-name ports: - "80:80" db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: your_db_name ``` 请注意替换上述模板中的占位符(如`your-backend-image-name`, `your-db-name`等),使其匹配实际的应用名称和服务细节。 #### 推送镜像到仓库 & 远程部署 一旦所有的本地测试都顺利完成之后,就可以考虑把制作好的Docker镜像推送到公共或私有的注册中心去了。这一步骤允许其他机器轻松下载所需组件而无需重复整个构建过程。接着借助诸如Ansible、Terraform之类的基础设施即代码(IaC)工具或者是手动方式登录到目标阿里云实例上去拉取这些最新的镜像并按照之前设定好的compose文件启动相应的服务即可[^2]。 #### 使用宝塔面板简化操作 如果倾向于图形界面的操作体验的话,那么安装了宝塔Linux面板将会是个不错的选择。该平台不仅提供了直观易懂的Web UI让用户能快速上手各种运维任务,而且还集成了对Docker的支持功能模块——比如可以直接在线查找并加载官方提供的MySQL, Redis等各种常用数据库系统的最新稳定版镜像;亦可通过上传提前准备完毕的`.tar.gz`压缩包形式导入私人定制化的web应用镜像[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值