1.下载Docker和Docker-Compose

1.安装Docker

记一次踩坑:误装podman-docker

问题概述:Centos8去下载Docker时,默认装的是podman-docker。当你去执行命令:systemctl start docker时,会出现以下错误:



所以我们必须卸载装的podman-docker,重新安装。

1.卸载podman-docker

yum remove docker

2.下载docker-ce源

curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

3.安装dockers-ce

yum install docker-ce -y

2.安装Docker-Compose

1.下载可能略慢,请耐心等待

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.给权限

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

3.查看版本,安装成功

docker-compose --version

3.下载nginx

1.拉取nginx镜像

docker pull nginx

2.linux下安装nginx

1.安装nginx依赖

#安装gcc
yum install gcc-c++ #安装PCRE pcre-devel
yum install -y pcre pcre-devel #安装zlib
yum install -y zlib zlib-devel #安装Open SSL
yum install -y openssl openssl-devel

2.下载nginx安装包

wget http://nginx.org/download/nginx-1.16.1.tar.gz

3.解压

tar -xvf nginx-1.16.1.tar.gz

4.在usr/local/下创建一个文件夹nginx

#创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx

5.退出文件夹

cd /

6.进入/下的nginx-1.61.1

cd nginx-1.16.1/

7.执行./configure

./configure

8.执行make

make

9.执行make install

make install

10.nginx已完成安装,默认安装目录为

/usr/local/nginx

11.进入安装位置的sbin目录,使用./nginx启动nginx

cd /usr/local/nginx/sbin

./nginx

12.浏览器中输入自己虚拟机/学习机/服务器的IP即可访问

3.修改nginx配置文件

找到自己根目录下的nginx-1.16.1,然后找到conf文件夹,然后将servr中的location全部替换为:

ip地址填写自己的ip,对应端口号分别为前端IP端口号、后台IP端口号

        location / {
proxy_pass http://10.21.23.91:8083;
} location /api {
proxy_pass http://10.21.23.91:7020/api;
}

4.打包前端项目

1.gitlab/github...拉取前端代码到idea,打开idea终端执行以下命令

npm run build

若是失败可以先执行yarn install

2.前端生成的静态包如下所示,最外层的包可以自己命名,此处我自己命名为artifacts

3.将idea连接到远程主机

3.1找到''浏览远程主机''

3.2进行SSH配置

3.3点击测试连接:成功!

3.4不知道虚拟机ip?可在linux终端/Xshell执行:ifconfig -a查询ip:

ens192中的inet之后内容便是:

3.5 添加远程连接



注意:这里的根路径,可以写到:存放DockerFile、docker-compose.yml、前端静态页面包的上一个包为止

此处,我将DockerFile、docker-compose.yml、前端静态页面包全部放到/lbs下

可以看到,我们的学习机根目录下面的包:



修改一下根路径,改为/lbs



此时界面如下



右键添加一个nginx目录



将artifacts包移动到nginx目录下,并修改artifacts文件名为html



在nginx目录下新建文件nginx.conf



在nginx.conf中添加内容如下:

#user  root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8083;
server_name 192.168.184.131;
location / {
root /usr/share/nginx/html;
# nginx 报404需要加下面这行
try_files $uri $uri/ /index.html last;
index index.html index.htm;
#nginx 报405加下面这行
#error_page 405 =200 http://$host$request_uri;
}
#nginx 报 连接错误 、没有数据(We’re sorry but “XXX” doesn’t work...放开下面的注释(我是这个问题,如果不行可以试试方法二)
#location ^~ /api/ {
#proxy_pass http://114.0.0.0:8999/;
#}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} location /api {
proxy_pass http://192.168.184.131:7020/api
}
}
}

4.将artifacts包下的内容,全部copy到nginx目录下

5.打包后端springboot代码

1.clean+package

2.target目录下取到jar包



可以自己修改jar包的名字,此处我自己修改为archive.jar

3.将.jar文件直接拖入到远程主机对应存放目录下

4.书写Dockerfile

lbs目录下右键新建文件Dockerfile



Dockerfile文件内容如下

#使用java 8 版本
FROM java:8
COPY archive.jar /archive.jar
CMD ["--server.port=7020"]
#对外暴露的端口
EXPOSE 7020
ENTRYPOINT ["java", "-jar", "/archive.jar"]

写完后一定要记得点击它上传

5.编写dockerfile-compose.yml

右键新建文件,命名为dockerfile-compose.yml

内容如下:

version: "3"
services:
nginx: # 服务名称,用户自定义
image: nginx:latest # 镜像版本
ports:
- 8083:8083 # 前端项目暴露的端口
volumes: # 挂载
# html和nginx.conf 挂载
- /lbs/nginx/html:/usr/share/nginx/html
- /lbs/nginx/nginx.conf:/etc/nginx/nginx.conf
privileged: true # 这个必须要,解决nginx的文件调用的权限问题
archive:
image: archive:latest
build: . # 表示以当前目录下的Dockerfile开始构建镜像
ports:
- 7020:7020 #后端项目暴露的端口
privileged: true

Docker+nginx部署前后端分离项目的更多相关文章

  1. 使用 Nginx 部署前后端分离项目,解决跨域问题

    前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...

  2. vue+uwsgi+nginx部署前后端分离项目

    前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...

  3. linux --- 部署前后端分离项目

    vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...

  4. Nginx部署前后端分离服务

    飘过... 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件.使用 Ngi ...

  5. centos7部署前后端分离项目的过程

    概述 本文主要讲解在安装了centos7的Linux主机中部署前后端分离项目的过程. 前端项目名为:vue_project:后端项目名为:django_project. 将这两个项目放在/opt/wh ...

  6. 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102 这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广 ...

  7. 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_179 随着现代化产品研发的不断推进,我们会发现,几乎每个产品线都会包含功能各异的服务,而且服务与服务之间存在也会存在着错综复杂的依 ...

  8. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  9. docker+nginx+redis部署前后端分离项目!!!

    介绍本文用的经典的前后端分离开源项目.项目的拉取这些在另一篇博客!!! 其中所需要的前后端打包本篇就不做操作了!!不明白的去看另一篇博客!!! 地址:http://www.cnblogs.com/ps ...

  10. Linux、Debian、Jenkins、GIT、Nginx、码云安装,自动化部署前后端分离项目

    1.安装Jenkins i:下载Jenkins安装包(war文件):https://jenkins.io/download/ ii:这里采用Tomcat的war包方式安装,讲下载好的安装包放到Tomc ...

随机推荐

  1. Pictionary 方法记录

    [COCI2017-2018#5] Pictionary 题面翻译 题目描述 在宇宙一个不为人知的地方,有一个星球,上面有一个国家,只有数学家居住. 在这个国家有\(n\)个数学家,有趣的是,每个数学 ...

  2. CSS动画-transition/animation

    HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...

  3. idea中springboot热部署(无需重启项目)

    idea中springboot热部署(无需重启项目) 1.在pom.xml文件中导入依赖 <dependency> <groupId>org.springframework.b ...

  4. 打不开 github 的方法与推荐基于Vue3与Element plus的后台管理系统

    一.打不开 github 的方法 1.打开本机 hosts 文件(C:\Windows\System32\drivers\etc) 2.然后在 hosts 文件里的末尾放入一下两个 IP 地址: # ...

  5. vue3路由的使用

    一.路由的概要 1.1.什么是路由? 路由就是一组映射关系,根据不同的 url 地址展示不同的内容或页面(key-value): key为路径,value可能是function或component 路 ...

  6. 微信小程序的学习(一)

    一.小程序简介 1.小程序与普通网页开发的区别 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 API不同 小程序无法调用浏览器中的DOM和BOM的API 但是小程序可以调用微信环境提供 ...

  7. python选课系统项目详解

    选课系统项目详解 选课系统简介及分析 选课系统架构设计分析 选课系统目录设计 管理员视图 注册 登录 创建学校 创建课程 创建讲师 学生视图 注册 登录 选择学校 选择课程 查看分数 教师视图 登录 ...

  8. liunx下安装Jexus5.8.2独立版运行asp.net MVC5

    Jexus 5.8.2独立版介绍 支持系统(64位):CentOS 6.5.Ubuntu 12.04版本以上包含当前版本. 运行环境:WebForm.Mvc3-5.WebService WebApi, ...

  9. qtcreator 报错error: You need to set an executable in the custom run configuration.

    解决 没有配置运行的可执行文件. 在 Executable 中填入正确的可执行文件位置,这里我使用了一个变量,可以根据 release,debug的区别自动找到对应的可执行文件.

  10. 6. PyQt5 中的多线程的使用(上)

    专栏地址 ʅ(‾◡◝)ʃ 这一节引入了多线程这个非常重要概念, 在我认为多线程的重要性是紧紧次于信号与槽函数的, 因为在平时经常使用 1. 为什么要用多线程 先看下面这一个示例代码 6.1 from ...