Docker+Docker-compose部署Springboot项目-前后端分离

保姆式教程,话不多说直接上内容!

首先需要的是服务器或者是虚拟机,我这边是ubuntu系统。

一、安装docker

为了有权限进行操作先执行 :  sudo su   之后输入登录密码即可进入到root用户

安装命令:

        apt-get install -y docker.io  或者 yum install docker

查看安装是否成功(版本号):

        docker -v  或者  docker --vesion

二、docker-compose安装

安装命令         

        curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

授予权限:

        chmod +x /usr/local/bin/docker-compose

查看否安装成功及版本:

        docker-compose --version

三、编写Dockerfile文件

在项目根目录下创建Dockerfile文件

 

 内容如下:

        FROM java:8  //拉取java环境镜像

        EXPOSE 8877 //暴露项目端口号

        ADD byl-service-1.0-SNAPSHOT.jar app.jar //复制一份jar包(byl-service-1.0-SNAPSHOT.jar         是自己项目打包的名称)
        RUN bash -c 'touch /app.jar'

        ENTRYPOINT ["java","-jar","/app.jar","spring.profiles.active=dev"] //jar包启动命令

四、编写docker-compose.yml文件

在项目根目录下创建docker-compose.yml文件:

内容如下:   

version: '3'

services:
  nginx:
    image: nginx:latest  //nginx镜像名称及版本 latest为最近的
    ports:
    - 80:80 //主机端口号和容器端口号映射
    volumes:
    - /root/nginx/html:/usr/share/nginx/html //映射服务器和容器上的nginx文件路径,需要先创建往下看
    - /root/nginx/nginx.conf:/etc/nginx/nginx.conf
    privileged: true  //开启nginx文件访问权限

  mysql:
    image: mysql:5.7 //mysql镜像名称及版本 5.7版本
    ports:
    - 3306:3306 //端口号映射
    environment:
      - MYSQL_ROOT_PASSWORD=123456 //设置容器中mysql密码

  redis:
    image: redis:latest

  nyservice: //自己项目名字,自定
    image: nyservice:latest
    build: . 
    ports:
    - 8877:8877 //项目端口号
    depends_on:
      - mysql
      - redis

 

五、服务器上的文件准备

1.项目的mysql、redis配置不再需要IP地址,直接用docker-compose.yml文件下面配置的名字

 

 

2.前端项目请求后端接口的地址需要改成服务器的ip地址

 localhost改成自己服务器的IP地址

 3.打包项目放到服务器的根目录下,我这边用的xshell,可以直接把文件拖过去

如果拖不过去,按照提示:apt-get install lrzsz 就可以往xshell里面拖入上传了

4.因为前面编写docker-compose.yml文件是nginx映射的文件路径是在/root 下 ,所以需要拖动项目打包好的jar包、Dockerfile文件、docker-compose.yml文件到/root路径下

 5.需要使用nginx挂载前端的代码

在/root路径下新建文件夹:    mkdir nginx

                                                cd nginx

                                                mkdir html    //存放dist文件夹下的文件

                                                touch nginx.conf  //nginx 的配置文件

前端vue的代码,使用命令: npm run build 打包后是有一个dist文件夹,把dist文件夹压缩成zip文件

 

 进入到   cd nginx/html ,拖入dist.zip到这个文件夹下

使用 unzip dist.zip  解压文件把解压的文件移到html文件夹下

命令是: mv dist/* .

之后可以把dist文件夹和安装包删掉了

命令是: rm -rf dist*

接下来查看html文件夹下的内容:

        完成!

然后是修改nginx目录下的nginx.conf配置文件

命令是:   vim nginx.conf

 内容如下:

这就是nginx.conf的配置文件把所有注释删掉而已,加了两行重要的代码
worker_processes  1;
  
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 1024m;

    sendfile        on;

    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;        //docker-compose.yml文件下配置的nginx的文件映射
            try_files $uri $uri/ /index.html last;        //一定得加上
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}
 

呼呼呼呼~~~~~~~~~~~~~~~~~~~~

马上结束了!

一切准备就绪之后,执行命令: docker-compose up -d 

过程会有一点慢,大家可以听一首半岛铁盒等一等.......

two years later..............

出现上面的内容说明已经成功构建了,现在查看一下docker在运行中的镜像

确实是成功了!

因为nginx的端口是80,所以直接输入服务器的地址就能出现项目的首页了 

 

大功告成! 

篇幅很长,请耐心跟着一步一步来!

后面看情况会出jenkins+docker 自动化部署项目! 

Docker ComposeDocker 官方编排(Orchestration)项目之一,负责快速部署分布式应用。通过 Docker Compose,我们可以定义和运行多个 Docker 容器,并通过一个 YAML 文件来配置需要的服务。 下面是使用 Docker Compose 部署 Spring Boot 项目的简单步骤: 1. 编写 Dockerfile 在 Spring Boot 项目的根目录下创建一个名为 Dockerfile 的文件,并添加以下内容: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 2. 编写 docker-compose.yml 文件 在 Spring Boot 项目的根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容: ``` version: '3' services: app: image: your-image-name build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod restart: always ``` 其中,your-image-name 是自定义的镜像名称,需要在构建镜像时使用。 3. 构建镜像 在 Spring Boot 项目的根目录下执行以下命令,构建镜像: ``` docker build -t your-image-name . ``` 4. 启动容器Spring Boot 项目的根目录下执行以下命令,启动容器: ``` docker-compose up -d ``` 5. 查看容器状态 执行以下命令查看容器状态: ``` docker-compose ps ``` 至此,你已经成功使用 Docker Compose 部署Spring Boot 项目。如果需要停止容器,可以执行以下命令: ``` docker-compose stop ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值