写个网站吧! --Flask+Vue.js+MySQL+Docker(5)--docker部署

news/2024/5/9 22:49:33/文章来源:https://eswang.blog.csdn.net/article/details/100110748

前情回顾:写个网站吧! --Flask+Vue.js+MySQL+Docker(1)--简介

到了最烦人最烦人的部署阶段,先简单画一个我的思路的图:

思路就是两个docker容器,一个布置前端,一个布置后端,最后使用nginx对请求进行解析,以分别解析到对应的端口。可以说是很清晰很简单了,然而!最令人绝望的阶段开始了。

前端

首先写个nginx的配置文件:

server {listen 80;location / {root /usr/share/nginx/html;index index.html;}
}

内容很简单,监听80端口,定位我们需要的index.html。然后打包前端,Dockerfile如下:

FROM nginx:alpineCOPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY ./dist /usr/share/nginx/html

基础镜像是nginx的alpine版本,这里把npm build生成的文件还有nginx配置文件放到对应的位置即可。

整个过程很流畅,没什么需要注意的,直接就行。注意要把dist文件夹转移到Dockerfile同级。

后端

尝试了几种方法之后,我选择了alpine的基础上安装python作为基础镜像:

FROM alpine:latest
RUN apk add --no-cache python3-dev\&&pip3 install --upgrade pip
WORKDIR /app
COPY . /app
RUN pip3 --no-cache-dir install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
EXPOSE 5000
CMD gunicorn -w 4 -b 0.0.0.0:5000 app:app

其中的曲折也不多说了,这样的话我尝试起来是最好的。

因为只是API,所以也没有使用nginx做反向代理,当然加上是更好的。

调度Nginx

注意的是文件内容路径:

⚙ asen@flask-blog-server  /etc/nginx/sites-enabled 

 文件内容如下:

server {                                                                       listen 80;server_name example.com;location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;               proxy_pass http://127.0.0.1:3001;}location /api {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;               proxy_pass http://127.0.0.1:3002;}
}

接着我们使用:

sudo service nginx restart

启用配置,这样,打到example.com上面就会启动如下配置。 

因为我的域名备案还没下来,这里的配置有没有问题我还不知道,如果有问题我再更新这部分内容并补充。

部署

这里使用的是阿里的容器镜像服务,简单好用还是私有的。

当然使用dockerhub也是可以的。

具体使用不多说了,写的很清楚了。设私有仓库的密码然后在本地登陆,随后即可推镜像了。

因为一些生产环境和开发环境不一样产生的问题再前文已经讲过了,所以剩下的坑也不是很多了。

这里我使用的部署方式是portainer.io, Github地址。

使用非常方便,大家可以看文档,编辑docker-compose的话也是在线的编辑器:

大家如果也是使用私有仓库的话别忘了先设置仓库地址和密码。

docker-compose不熟悉的可以去查阅文档,这里可以看出因为MySQL没用开镜像,这里的文件都比较简单。

整个流程就是这样的,最后说一个很奇怪的BUG

BUG

简单的说是,在我本机上的镜像,可以成功运行,但是在云服务器上就是会出错,显示的:

o.indexof不是一个合理的方法

看起来似乎是element的错误,不禁想发问,同一个镜像为什么会随着主机而改变了呢。

这个问题困扰了我很久,即使重新布置也是有错误的。

巧的是今天中午排除了各种错误之后,我又重新部署了一编,竟然又没有错误了。。

很无语。。。

现在还是很无语。。。

未来的事:

docker的知识一定是要继续学习的,这个东西太好用了。。。

未来再写我的网站的内容,希望自己已经有底气去面对工作了,加油,明天。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_794363.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用论文检索网站

1、https://dx.doi.org/ DOI本身有很强大的检索网站,拥有非常完善的文献储存与检索系统,进入网站之后,在输入框中粘贴进DOI号,然后点击GO就会回到刚刚那篇论文的所在的网页。也就是说,在只知道DOI的情况下,…

个人博客网站的第一次修改

前言 今天讲博客网站的部分功能修改了一下,在这里记录下来,说不定以后看起来还有点意义。 数据 首先是数据层的修复。 根据分类获取到的文章列表并没有按照事件降序排列的BUG,这个之前没有注意,使用过程中才发现。 关于浏览量…

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

网站Http升级至Https(基于Tomcat)

由于之前一直忙于服创比赛,然后就导致好久没写博客了。 现在服创结束也有十来天了,感觉不写点什么就对不起自己了。 于是乎,就写写将网站从http升级到https的过程吧。首先域名和服务器自然是必须的,大致流程分为以下几部&#xff…

35个立体动感的视差滚动效果网站作品

这篇文章收集了35个具有立体动感效果的视差滚动网页设计作品分享给大家。视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。作为今年网页设计的热点趋势,越来…

30个优秀的网站导航设计案例分享

导航是网站最重要的组成部分之一,设计优秀的导航能够引导用户浏览网站中的更多内容。为了能让导航和网页内容完美的融合在一起,设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案例,希望这些实例能给你带来灵感。 Fully…

分享30个优秀的网站导航设计案例

导航是网站最重要的组成部分之一,设计优秀的导航能够引导用户浏览网站中的更多内容。为了能让导航和网页内容完美的融合在一起,设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案例,希望这些实例能给你带来灵感。 Fully…

网站出现 502 Bad Gateway 怎么解决?

为什么80%的码农都做不了架构师?>>> 打开某网站出现一个问题如下图(这里就不说是哪个网站了),那么下面就针对这个问题分享下解决思路。 1、什么是 502 badgateway 报错 ? 简单来说 502 是报错类型代码&…

《CSS网站布局实录》读书笔记

从Web标准、HTML标记、CSS语法基础介绍到实用技巧,事无巨细。实体书已不印刷,只能下载电子版 书的背景: 国内第一本web标准的CSS布局书,2006年9月第一版,作者李超。 环境背景: 当时主流浏览器IE6与Firefox&…

谁在使用我的网站——用户行为分析

谁在使用我的网站——用户行为分析 前面根据用户的特征对用户做了分类,设定了一些常用的用户指标和值得关注的用户指标,基于这些分类用户指标的分析可以发现用户运营和推广中的诸多问题,其中活跃用户和流失用户的定义中已经用到了与用户行为相…

如何选择合适的网站程序

如何选择合适的网站程序 对于大多数的新手站长,如果要自己建一个网站,一般都是从网上下载一些现成的网站程序代码。可是,这些新手对于选择哪种CMS程序往往比较困惑,不知道哪个好用一些。现在,我们就来说说如何选取合适…

后端小白的我,是如何成功搭建 express+mongodb 的简洁博客网站后端的

前言 blog-node 是采用了主流的前后端分离思想的,主里只讲 后端。 blog-node 项目是 node express mongodb 的进行开发的,项目已经开源,项目地址在 github 上。 效果请看 http://biaochenxuying.cn/main.html 1. 后端 1.1 已经实现功能 [x]…

Flickr 网站架构分析

Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。 Flickr.com 是最初由位于温哥华的Ludicorp公司开发设计并于2004年2月…

一个可以实时查相关电子产品价格的网站_我是亲民_新浪博客

香港价格网,里面的价格和香港的百老汇、丰泽等的价格几乎同步,相差不大,有很大的参考价值,对于准备去香港买电子产品的网友来说,是个非常好的网站,特别分享: http://www.price.com.hk/

一个可以实时查相关电子产品价格的网站

香港价格网,里面的价格和香港的百老汇、丰泽等的价格几乎同步,相差不大,有很大的参考价值,对于准备去香港买电子产品的网友来说,是个非常好的网站,特别分享: http://www.price.com.hk/

微软所有正版软件下载网站ITELLYOU_我是亲民_新浪博客

上周上课,从一个学生得知这样一个神奇的网站,汇集了微软出品的几乎所有软件,提供下载。 这是网站的主页,简简单单,就是一个分类。 里面的操作系统栏目,涵盖了DOS6到最新的Windows8.1 with update&#xff1…

微软所有正版软件下载网站ITELLYOU

上周上课,从一个学生得知这样一个神奇的网站,汇集了微软出品的几乎所有软件,提供下载。 这是网站的主页,简简单单,就是一个分类。 里面的操作系统栏目,涵盖了DOS6到最新的Windows8.1 with update&#xff1…

镜像下载网站

1、ISO镜像下载网站:网易镜像:   http://mirrors.163.com/阿里镜像:   https://opsx.alibaba.com/mirror # 亲测可用。点进去,选择ISO文件,点击即开始下载 centos中文站: https://www…

IIS6批量转移网站

IIS6.0有个导出配置的功能,但你却找不到界面上的直接导入配置功能,需要用到操作系统自带的iiscnfg.vbs脚本。 1、导出当前的IIS网站配置 打开Internet信息服务(IIS)--->右键“网站”--->“所有任务”--->弹出的保存窗口,填写文件名和…

你可以将类似于Google Earth的地球仪嵌入到自己的网站中

Poly9公司的开发了一个叫FreeEarth的地球仪。它的功能类似于Google Earth和微软的Virtual Earth,但它是基于Flash的,所以可以让您只要稍微加几句代码就能把它嵌入到网站中。当然肯定也没有前两款软件这么精确了。不过还是很受网友们的欢迎,现…