写在开头
前段时间参加了一场CTF入门级比赛,由于之前从来没有参加过类似的比赛,基本上零基础,全凭搜索引擎现学现卖,最终拿了个二等奖。
比赛结束后,突然觉得还是应该写一写东西,挂在网上。于是…
—— 后人有诗赞曰:
栽树不忘挖井人
Overview
为方便后人查阅,这里简要概括一下:
- 开发主机为Windows,使用VSCode + WSL进行开发网站(基于LAMP)
- 采用容器技术,首先在本机完成开发和测试,然后可以随时打包更新到云服务器上
- 云服务器为CentOS7.6操作系统
对各个步骤的介绍都很详细。
主要任务为
把之前在腾讯云Windows Server2016中部署的WAMP网站(基于ThinkPHP开发)迁移到CentOS7.6下,并采用LAMP容器的方式部署,方便日后再次迁移。
Windows环境准备
安装WSL并在其中安装docker
docker的安装教程和在正常Linux主机上安装无异,见docker官方安装教程
安装docker后配置源,这里用的是腾讯云源:
向其中添加如下内容:
使用VSCode连入WSL
迁移网站到开发环境
之后我们都是基于这个镜像,以及我们后续对网站做的更改来构建镜像。
编写Dockerfile
可以可以在提供的基础上进行修改:
这里最重要的是,当MySQL没有数据的时候,我们把预先准备好的数据解压过去,这样网站容器初始就可以正常运行,而之后再次部署容器时因为VOLUME有数据了,就能在更新网站的同时保住网站的数据库数据。
后面的代码就是环境的准备和启动。
部署至云服务器
这样整个一套部署流程就完毕,只需运行脚本,网站的更改就被打包上传并部署了。
后续维护
那么后续怎么维护这个开发流程呢?
如果只是对网站源代码/网站证书/vhost配置文件进行修改,那直接改好了运行脚本打包上传就是了。
网站的测试就直接用之前本地用构建的容器。
如果要对镜像的其他部分进行修改可以进入容器内部修改,然后再重新构建一个就行了。