-
腾讯云服务器环境准备。
https://buy.cloud.tencent.com/cvm (腾讯云地址)
根据待部署的项目选择服务器的配置(cpu核数,硬盘容量以及带宽等等)
购买成功后进入腾讯云的控制台,左边菜单选择实例,然后右边的区域记得你购买服务器时填的区域,就会出现你购买过的服务器。
我们先为这个服务器重置密码,然后进入服务器的终端,进入终端后开始,开始下载docker环境,以centos系统举例:
一,更新yum$ yum install -y yum-utils $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
二,安装最新版本的Docker
$ sudo yum install docker-ce docker-ce-cli containerd.io
三,启动并设置开机启动
$ sudo systemctl start docker $ sudo systemctl enable docker
云服务器上的docker安装好之后开始部署项目代码。
-
项目部署。
首先进入本地vue项目的目录执行$ npm run build
执行后会在当前目录生成一个名问dist的文件夹
然后该目录下创建Dockerfile文件(名字不能错 不然后续构建镜像会报错找不到文件)和default.conf 文件,Dockerfile文件内容如下:
第一行表示以nginx镜像作为基础镜像,第二行表示将宿主机的dist文件夹下的所有内容拷贝到容器中的nginx的html目录下,以便将dist下的index.html作为项目的首页,第三行表示用自己编写的nginx配置文件替代nginx默认的配置文件。default.conf 文件内容如下:
root参数的值为首页html文件所在的路径,index的值为首页html文件名字。
在云服务器终端上创建vue项目空文件夹vue_pro,之后在本地的vue项目目录下执行scp命令,将上述文件上传到云服务器上的vue_pro目录下。$ scp -r ./dist [email protected]:/vue_pro/ $ scp ./Dockerfile [email protected]:/vue_pro/ $ scp ./default.conf [email protected]:/vue_pro/
然后在云服务器终端上执行命令构建镜像文件和启动容器。$ docker build -t vue_image . $ docker run -d -p 80:80 --name vue_app -v /douyin_vue_new/dist:/usr/share/nginx/html vue_image
-p参数的值表示将容器里nginx的80端口映射到宿主机的80端口上,这样访问宿主机的80端口就能进入到nginx的首页了。
-v参数的值表示将容器中html文件夹与宿主机的dist文件夹同步 这样当修改vue组件代码时,修改之后的内容能实时更新到容器上。接下来开始在构造mysql容器。
$ docker pull mysql $ docker run -d -p 3307:3306 --name django_mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
-e参数的值表示设置数据库root用户的密码。
接下来开始部署后端django项目。
进入到django项目目录下,执行¥ pip freeze > requirements.txt
,将项目所有依赖包导出到requirements.txt文件里。修改settings文件中数据库配置的内容。
HOST为云服务器ip地址,PORT为mysql容器映射到宿主机上的端口号。然后在django项目目录下编写Dockerfile文件(同理名字得一样),starts.sh脚本文件,和pip.conf配置文件。Dockerfile文件内容如下:
starts.sh脚本文件会在由镜像构建成为容器自动运行, 这样就能自动启动django服务了,内容如下:
这里注意启动的ip地址要写0.0.0.0,一定不能写127.0.0.1,不然外部不能访问django的api接口了。
pip.conf配置文件目的是为了切换容器系统内pip的源,让python的依赖包安装的更快,内容如下:
此时django项目的目录结构如下:
同样,在云服务器上创建django项目空文件夹django_pro,通过scp命令将django项目代码上传到云服务器上的django_pro目录下。$ scp ./ [email protected]:/django_pro/
。
最后在云服务器上该目录下执行docker命令构建django项目镜像并启动容器:docker built -t django_web . docker run -it -p 8000:8000 -v /django_pro:/app django_pro /bin/bash
同样及得要同步代码目录 以便能随时能同步修改。
然后运行docker ps,能看到我们刚刚启动的三个容器:
这时,我们打开浏览器,输入 81.68.194.194(云服务器ip):80 就能访问到我们的项目首页啦!