V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
IceCola1
V2EX  ›  Python

适合新手的 Python web 的 ci/cd 流程

  •  
  •   IceCola1 · 2019-02-25 19:28:24 +08:00 · 5018 次点击
    这是一个创建于 2108 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为一名 python web 学习者,有自己的云服务器,有没有想过把自己的代码部署到云服务器上? 如何和当下最流行的 devops 结合起来?

    我个人总结了一套基于 Flask 的 ci/cd 流程,主要有以下几个特点:

    1. 基于 docker 和 docker-compose 容器编排,将 mysql,redis,nginx 结合起来。
    2. 基于 gitlab-ci 对代码进行基于容器的集成测试,静态代码检查,和手动触发的一键部署到自己的 Linux_server 上。每次通过 git 将代码 push 到 gitlab ci 上后,测试任务会自动触发,deploy 设置为了手动触发。
    3. 同时也包含了一些 Flask 扩展方面的知识,比如结合 celery,加载 flask_cli 运行 commands 之类的。

    分享出来,希望能够得到大佬的建议和意见。

    github 地址

    17 条回复    2019-02-26 00:03:34 +08:00
    IceCola1
        1
    IceCola1  
    OP
       2019-02-25 19:47:25 +08:00   ❤️ 2
    有喜欢的希望能 star 一下🙏
    sadscv
        2
    sadscv  
       2019-02-25 20:24:17 +08:00
    很棒,也希望能够写成教程分享给大家,或者给新手介绍一些学习路径.
    IceCola1
        3
    IceCola1  
    OP
       2019-02-25 20:42:48 +08:00
    @sadscv 好的,以后有学习总结或者新的好玩的知识一定分享。
    vinsec
        4
    vinsec  
       2019-02-25 20:47:09 +08:00 via iPhone
    支持
    IceCola1
        5
    IceCola1  
    OP
       2019-02-25 20:53:34 +08:00
    @vinsec 谢谢~
    wzw
        6
    wzw  
       2019-02-25 20:56:14 +08:00
    代码能不能来个更详细一点的说明呀,
    starsky1
        7
    starsky1  
       2019-02-25 20:59:09 +08:00 via iPhone
    学习
    IceCola1
        8
    IceCola1  
    OP
       2019-02-25 21:09:11 +08:00
    @wzw 嗯,好的!我这两天再完善下,有什么没写清楚的地方欢迎提 issue~
    clevermoon
        9
    clevermoon  
       2019-02-25 21:11:54 +08:00 via Android
    正好写了 Flask+WebSocket 的毕设,部署一直比较迷,学习了。感谢分享!
    Trim21
        10
    Trim21  
       2019-02-25 21:28:33 +08:00   ❤️ 1
    我现在用的 daocloud, 可以在 daocloud 的服务器上构筑 docker 镜像, 然后自动部署到自己的服务器上. 也可以用来管理自己服务器上跑的 docker 镜像.
    IceCola1
        11
    IceCola1  
    OP
       2019-02-25 21:52:39 +08:00
    @clevermoon 哈哈,对你有帮助我也很开心,获得了成就感~
    Allianzcortex
        12
    Allianzcortex  
       2019-02-25 21:57:32 +08:00
    支持
    caqiko
        13
    caqiko  
       2019-02-25 22:32:05 +08:00
    学习一个
    zjb861107
        14
    zjb861107  
       2019-02-25 23:00:25 +08:00
    mysql 的密码写在 docker-compose.yml 了,ip 在 shell 脚本也暴露出来了~
    apt、pip 没清缓存等等。
    怎么说呢,看起来是能运行了,但是很多细节还需要推敲。
    trys1
        15
    trys1  
       2019-02-25 23:07:54 +08:00 via Android
    部署是在 ci 脚本里通过 ssh 发命令去服务器部署的?!这样真的好吗?第一次见这种操作
    IceCola1
        16
    IceCola1  
    OP
       2019-02-26 00:01:35 +08:00
    @zjb861107 感谢~细节方面的会持续改进
    IceCola1
        17
    IceCola1  
    OP
       2019-02-26 00:03:34 +08:00
    @trys1 仅仅用 docker 的情况下,暂时只能想到这种方法... 当然如果是 k8s 的话,直接打镜像就更简单了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3570 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:08 · PVG 08:08 · LAX 16:08 · JFK 19:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.