不是水贴,纯求教!
说是新手,做开发也十几年了。
不敢说老手,主要是一直还在用老式的开发方式。经常做外包的同学一定有所感悟。
先说一下我目前的技术栈以及用到的一些东西。
一、本地开发环境
nodejs(主要用于vue开发)
虽然后端是用PHP,但是本地没有PHP环境,一直以来都是本地写好代码后,保存,IDE立即上传到服务器的测试网站,有时候会直接上传到生产网站。
二、线上生产环境
主要是Lnmp,Ubuntu、PHP、Mysql、Nginx、NodeJs和Python
线上的一键环境就是用宝塔之类的,做外包的都懂。
三、技术栈
1、从十几年前用某开源PHPCMS给客户做一个企业网站开始走上HTML+CSS+jQuery这一套,也慢慢接触PHP;
2、从ThinkPHP3.2开始,TP+Bootstrap+军哥的lnmp套装,开始了10年的外包之路。说真的,如果没有VUE这类新技术的出现,这个组合拳真的挺吃香的。
所以平时的开发方式基本上是这样的:
1)买一个VPS
2)装上LNMP环境
3)在线上环境安装上ThinkPHP
4)在IDE配置本地和线上同步
5)一边写,一边上传,一边在线查看效果
后来也用上了VUE,后端开发流程也和上面差不多,只是前端需要在本地开发和测试,最后再打包到线上让客户预览。
所以现在我的VPS上一般有三个项目:
1)由ThinkPHP开发的api项目,需要nginx、php、mysql
2)由vue开发的后台项目,纯静态,也需要nginx
3)由nuxt开发的前台项目,需要nodejs、pms、nginx
四、困扰的问题
这段时间在掘金看了不少docker,有干货的,有水贴的,有只讲概念的。所以本菜鸟斗胆在这里开个文章请教一下各位大神,当然,不敢让你们给我讲太细了,给我提供一些思路就可以。
1)如果本地的开发环境是Windows,线上的运行环境是ubuntu,在本地构建的镜像可以直接用到线上吗?
2)像我上面所讲的,线上可能会运行多个项目,是每个项目单独构建成一个镜像,镜像里面包含了各种运行环境吗?
3)后期项目的维护更新是怎样进行的?
不知道我目前这样理解对不对。
每个环境其实就是每个容器,比如nginx是一个容器,php是一个容器。。。每个项目(网站)是一个编排,也就是Compose,在docker-compose.yml里面把所需要的运行环境列进去,然后发布到线上。
实在不好意思,只能来请教各位年轻有为的高手们了,中式抱拳!!