docker部署springboot2+vue项目

1.安装jdk8

docker pull java:8

发现报错了,查看一下报错信息

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

不存在???查一下docker

docker search java

通过官方了解到 java镜像已经弃用,请使用 openjdk

docker pull openjdk:8

报错了,查看

[root@localhost docker]# docker pull openjdk:8
8: Pulling from library/openjdk
001c52e26ad5: Retrying in 1 second 
d9d4b9b6e964: Retrying in 1 second 
2068746827ec: Retrying in 1 second 
9daef329d350: Waiting 
d85151f15b66: Waiting 
52a8c426d30b: Waiting 
8754a66e0050: Waiting 
error pulling image configuration: download failed after attempts=6: dial tcp 104.18.125.25:443: i/o timeout

排查,发现是docker的daemon.json没有配置拉取镜像的源造成的

配置一下daemon.json

vi daemon.json 

写入信息

{
        "registry-mirrors":["https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],
        "data-root": "/var/lib/docker",
        "live-restore": true,
        "log-driver": "json-file",
        "log-opts": {
                "max-file": "3",
                "max-size": "10m"
        }
}

保存,重启docker

systemctl daemon-reload
systemctl restart docker

重新执行拉取pull

docker pull openjdk:8

安装完成,查看java是否已经安装成功

docker images

 安装openjdk 8 已经完成

2.部署springboot2项目

迁移springboot项目到指定地址,sayHello.jar到自定义路径/root/docker-file

创建dockerfile文件

touch sayHello_dockerfile

编辑 sayHello_dockerfile 文件

#基础镜像使用jdk1.8
FROM openjdk:8
#作者
MAINTAINER zdysoft <zdysoft@126.com>
# 设置时区
ENV TZ=Asia/Shanghai
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
#将jar包添加到容器中并更名,与COPY类似
ADD sayHellow.jar test_say.jar
#暴露的端口
EXPOSE 8088
#执行命令运行项目
ENTRYPOINT ["java","-jar","test_say.jar"]

PS:dockerfile文件还有很多信息可以配置,这里不一一介绍

开始制作镜像

docker build -f ./sayHello_dockerfile -t test_say .

查看镜像通过docker images

运行镜像

docker run -p 8090:8082 test_say

 后台启动

--name 知道容器启动的昵称别名 -d 后台启动  8090容器暴露的端口  test_say上面生成的镜像名
docker run --name sayHello-app -d -p 8090:8080 test_say

完成。

3.部署vue项目

先部署nginx

docker pull nginx:latest

迁移vue打包好的项目dist到指定路径,在此路径下放置nginx.conf文件

PS:可在官网上(nginx: download)下载一个文件,解压后拿到此文件变更一下相关接口上传到此路径

 编辑一个dockerfile文件

vi Dockerfile

编辑内容

FROM nginx
#作者
MAINTAINER zdysoft
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
RUN echo 'echo nginx with dist init ok!!'

保存后,创建镜像

docker build -t docker-vue .

执行结果并查看:

执行镜像

#--name:创建的容器名称 -d:后台启动
docker run -d --name bm-docker-vue -p 8081:80 docker-vue

完成。

### 使用 Docker 部署 Spring Boot 和 Vue 构建的项目 #### 准备工作 为了成功部署包含 Spring Boot 后端和 Vue 前端的应用程序,需先完成一些准备工作。这包括配置 Docker 的远程访问权限以及设置开发环境中的必要工具。 对于后端部分,在 IDEA 中应配置好 Docker 插件并集成 Maven 插件以便于后续操作[^2]。而对于前端,则要确保本地已安装 Nginx 并拉取其官方镜像用于服务静态资源文件。 #### 创建 Dockerfile 文件 针对 Spring Boot 应用而言,在指定路径 `/root/admin-vue/spring_dockerfile` 下创建 `Dockerfile` 是必要的步骤之一。此文件定义了应用运行所需的操作系统环境及其依赖项,并指导 Docker 如何构建应用程序镜像[^3]。 ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ADD admin-service.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` 上述是一个简单的 Dockerfile 示例,适用于大多数基于 Java 的微服务架构下的 Spring Boot 项目。 #### 打包与发布流程 当所有准备就绪之后,可以按照如下顺序执行具体命令来实现整个项目的自动化打包与发布: 1. **构建 Spring Boot 应用** - 利用 Maven 或 Gradle 对 Spring Boot 进行编译打包成 JAR/WAR 形式的可执行文件; 2. **构建 Docker 镜像** - 将生成好的 Jar 包放置于之前提到过的特定位置(即含有 Dockerfile 的同一目录),并通过 `docker build . -t your-image-name` 来制作自定义镜像; 3. **启动容器实例** - 接下来就是利用新建立起来的镜像去初始化一个新的容器:`docker run -d -p hostPort:containerPort --name containerName imageName` 4. **处理 Vue.js 客户端** - 在完成了服务器端部属以后,还需要关注客户端方面的工作——即将已经构建完毕的 Vue 单页应用通过 NGINX 反向代理的方式对外提供 HTTP 访问接口。 - 修改 nginx.conf 添加 location 指令指向 vue dist 目录; - 把修改后的 conf 放入到 nginx/conf.d/default.conf ; - 更新默认页面 index.html 至 html/index.html ; 5. **优化与测试** - 经过以上几步基本能够满足大部分场景的需求,但仍建议进一步调整参数以适应实际生产环境中可能遇到的各种情况。比如内存限制、CPU 核心数分配等都可以作为调优的方向。同时也要记得进行全面的功能性和性能方面的验证,确保一切正常运作后再正式上线投入使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值