这几天无聊给单位撸了个 web,主要发布我们单位自己的一些内部信息,环境是 python3.6 、django2,功能已经差不多做完了。
可是问题来了………我不会部署…………
要部署在我们单位自己的服务器,这个服务器不能连外网……怎么部署比较……简单一点……直接打包安装会不会出问题🥵
第一次完整做( copy )一个项目
1
gimp 2020-03-22 20:40:05 +08:00 1
1,学一下 Docker,打成镜像,环境无关。
2,搜搜离线安装 Python3,django2 的方法。 |
2
ClericPy 2020-03-22 20:51:30 +08:00 1
如果没有 C 库的话, 可以参考下 linkedin 当年用的 shiv, 把全部依赖打包成了一个 pyz... 不过很不优雅的感觉, 如果不能连内网 pypi, 但是你测试环境和线上环境基本一样, 可以把依赖那个文件夹打包一起带过去
如果能连内网 pypi 的话, pipenv, poetry 都可以搞虚拟环境那一套, 反正解释器还是得自己搞 不连外网还是挺头疼的, linux 上的 Python 解释器很多依赖要安装, 如果内置 3.6 倒还好, 所有依赖都下载 whl 然后本地 pip 就行了 至于其它思路... 不能打包二进制, 只能考虑 docker 了 |
3
ipwx 2020-03-22 20:57:58 +08:00 1
ssh -L 做个隧道,你们那边有风险控制么?没有的话就可以让你们内网服务器通过你的笔记本代理上网。
|
4
ipwx 2020-03-22 20:58:28 +08:00
毕竟听你的描述,你们单位也不是什么互联网大厂。。。
|
6
gimp 2020-03-22 21:17:27 +08:00
公安网的服务器上 Docker 吧,一步到位,以后安装其它服务也方便,省心。
|
7
cdlnls 2020-03-22 21:21:03 +08:00 via iPhone
准备一个 docker 离线的安装包,然后把你的项目放在 docker 里面,镜像什么的提前准备好。到了内网之后,安装 docker 然后 load 进去。
|
8
123444a 2020-03-22 21:21:37 +08:00 via Android
终于碰到国安的同志了
|
9
littlewing 2020-03-22 21:28:27 +08:00
在同样的系统版本上整一个 virtualenv,把 py 二进制,依赖包等等全部整进去,然年后 copy 过去直接跑
|
10
zhoudaiyu 2020-03-22 21:29:12 +08:00 via iPhone
uwsgi nginx
|
12
ipwx 2020-03-22 22:18:32 +08:00
那就,anaconda ?本体安装包可以离线,还能把虚拟环境整个导出导入。爽!
|
13
xyjincan 2020-03-22 22:19:05 +08:00
虚拟机里面全部弄好,拷贝进去运行就好了
|
14
Tink 2020-03-22 23:35:44 +08:00 via iPhone
我觉得吧,直接封装虚拟机
|
15
sxy960806 2020-03-23 00:14:38 +08:00 via Android
这个除了手把手教估计也没什么办法了,离线环境安装 docker 也不容易。如果题主会离线安装 docker,那就不会来发帖了。
|
16
manami 2020-03-23 07:44:53 +08:00 via Android
来了,开 ssh,让我上去看看
|
17
frostming 2020-03-23 09:15:22 +08:00
主要问题是安装 Python 3,不知你们有没内网 linux 源,如果有,最好安装 linux 源里面的,否则的话,比较蛋疼
readline, openssl, sqlite, xz, libzip,一堆依赖要装,也不是没办法,上 rpm 包网站一个个下载下来安装 pip 包比较好办了,有没有源都挺方便的,pip download 把依赖全下载好然后推上去就行了 |
18
hankai17 2020-03-23 10:08:44 +08:00
搞成 rpm 包
|