写在前面的话
1. 为什么我要叫伪部署
答: 因为我把它们放在服务器运行,都是开发模式。生产模式实在不会弄,所以就这样了。
2. 系统环境
答: 腾讯云服务器 系统为:ubuntu 版本不记得,应该是比较高的。
3. 前提假设
5. 可以从 二、docker部署mysql开始,不然配置半天发现数据库都没连。
正文开始
1. 在beego项目根目录下,编写Dockerfile 文件
ps 其实这个 CMD [“bee”, “run”] 这条可以不要,可以进入手动启动。
2. 构建 wordhelpapi 这个镜像
由于我已经构建过,所以我就不贴结果图。
3. 查看 wordhelpapi 这个镜像 是否成功构建
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
- -i: 交互式操作。
- -t: 终端。
- –name wordhelpapi 指定生成容器的名称为 wordhelpapi
- -p aaa:bbb表示宿主机的aaa端口映射容器bbb端口。
- -v aaa:bbb 表示将本地aaa目录下的文件映射(复制)到容器bbb目录下面。
- wordhelpapi 最后这个 表示使用wordhelpapi这个镜像来生成容器。
5. 查看 wordhelpapi 这个容器是否创建成功
在这之前,一切顺利的话,你可能直接就进入到容器内部了。
假设我们还在宿主机里。
查看容器是否成功构建
知识补充
- docker run 从选择镜像到生成容器,并启动
- docker start 启动一个已经生成的镜像。
接下来假设我们要对容器 内部的beego项目修修改改。这是后我们要转战进入容器内部了
6. 进入 wordhelpapi 这个容器内部,并为所欲为
然后这样
一切走上正轨之后。
可以这样运行你的beego(因为我打包部署不成功,所以只能以开发模式运行了,毕竟只是毕设演示用),在你beego根目录下,如果有wordhelpapi(你曾经bee run 出来的) 二进制文件,直接删了后
这样beego 项目在容器里就一直后台运行了。
不管这个成功与否,到这里已经成功了,无非是你的数据还没有成功连接数据库。
补充知识:
1. 假设你现在在宿主机里。需要传文件到容器内部
说明:将当前目录下的 aaa文件复制到Id为6a72b1dd428c的容器的/bbb目录下面。
2. 运行出错找出这个pid, kill他
说明:lsof 没有的话你要安装;9000表示我的api 运行在9000端口。
说明:1096是查出来的pid。
突然转场一下 我们应该先部署mysql
接上一个步骤,退出wordhelpapi 这个容器
1. 拉取mysql镜像
我数据用的mysql5.7。所以
自行查看是否拉取成功
2. 利用镜像构建容器并运行
前面说了。docker run 表示利用镜像构建容器并运行。
搞这个也是搞了蛮久,建议直接复制,自行改改端口,改改数据库密码就行了。能力强的多搞搞。
2. 查看 mymysql这个容器是否运行
知识补充 docker ps表示 显示正在运行的容器,docker ps -a 显示所有容器(不管是否运行)
3. 测试mymysql 这个容器服务是否正常。
这里我用navicat for mysql ,为什么选择这个呢,因为我主要搞前端比较多,后端薄弱,就是数据库查询这块不行,navicat 可以帮助我可视化地构建查询语句。前端小伙伴们可以了解下。
1. 新建连接。输入ip,用户名,密码.
2. 此时可以通过这个工具,将你地数据库进行导入了。
1. 在goAdmin项目根目录下,编写Dockerfile 文件
跟弄beego那个差不多。可以直接复制那个文件Dockerfile 文件 改改端口号就好。
前提是你要自己成功运行过goAdmin。如果没有经验可以看我的上篇博客。那个是写goAdmin搭建后台管理页面的。
1. 利用当前Dockerfile 文件构建wordhelpweb镜像
2. 利用当前wordhelpweb镜像构建wordhelpweb容器
3. 进入wordhelpweb,并为所欲为
4. 运行wordhelpweb容器中的goAdmin项目
假设我到达容器中goAdmin项目的根目录位置
不晓得为啥 & 这个命令会意外终止。所以就用了
补充
在这一步,会出现很多报错,因为 各个github.com里面有的包没有,所以你看你需要哪些包,就用前面提到的 命令将你的包都搞进去。
前面也提到过,你要解压缩什么的 这些命令也是没有的,所以
apt-get update 之后,再安装你需要的命令工具,不然apt-get install 会无效。
话说这一步,我好多包都没搞过来,光命令和 和 命令就用了很多次。
另外
我们数据库服务启动成功了。
- beego中conf/app.go 文件中,数据库IP地址建议用内网地址,因为beego,mysql,goAdmin三者都是容器化,所以他们都算在一个局域网内。查看mysql的内网地址
首先进入mymysql这个容器,然后cat出主机名称就可以看到了
微信小程序接口需要带证书的域名,还要备案了的域名,所以,作为学生党,啊呸,还有一个月就不是了。没钱所以从natapp买了个二级域名,记得要选择可以免费开启https的。
还是说一下完整的步骤把,怕有的同学这个不会弄。
1.购买二级域名
2. 可能第一步之前你要先购买隧道,那就去点购买隧道,购买一个把,vip_1那个就可以了。
3.配置隧道
4.进入wordhelpapi 容器中,并启用隧道
假设你已经进来了,假设你按照我之前的apt-get update了,那么你可以安装下wget 用来下载natapp的客户端,或者本地下载好上传宿主机,再上传容器中(相信一般人都是怕麻烦的)所以我们用wget下载
1. 首先 复制下载链接地址
2. wget 链接地址
可以先创建个文件夹 来存放它,再cd进入吗,再下载。
2. 解压这个zip 文件
这是这个目录下会多出一个 natapp可执行文件。
但是如果你现在直接参照官网的
会说你权限不行。所以我们向后退一级目录