1. 程式人生 > >基於docker+gunicorn部署sanic專案

基於docker+gunicorn部署sanic專案

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

程式設計狗程式設計大牛技術分享平臺640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

最近雲服務提供商在打價格戰,我在某雲上花了很少的錢租了一個月的雲伺服器: 公網ip是: 116.85.42.182, 以下我以116.85.42.182這個ip為演示,當你自己在部署的時候請換乘自己的ip地址.

買完伺服器之後,你會得到一個公網ip,你可以通過ssh命令連線上你的伺服器.

  1. ssh dc2-[email protected].85.42.182

順便提一句,某雲給你建立的賬戶叫"dc2-user",你需要自己設定root的密碼.

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

然後安裝docker:

  1. sudo apt-get install http://docker.io

演示一個最小的sanic-app,來部署一下. 這是專案樹(目錄).

  1. .

  2. ├── app.py

  3. ├──Dockerfile

  4. └── templates

  5. └── index.html

  6. 1 directory,3 files

app.py

  1. import os

  2. from sanic importSanic

  3. from sanic.response import html

  4. from sanic.response importHTTPResponse

  5. from jinja2 importEnvironment,FileSystemLoader

  6. app =Sanic(__name__)

  7. base_dir = os.path.abspath(os.path.dirname(__file__))

  8. templates_dir

    = os.path.join(base_dir,'templates')

  9. jinja_env =Environment(loader=FileSystemLoader(templates_dir), autoescape=True)

  10. def render_template(template_name: str,**context)-> str:

  11. template= jinja_env.get_template(template_name)

  12. returntemplate.render(**context)

  13. @app.route('/')

  14. asyncdef index(request)->HTTPResponse

    :

  15. return html(render_template('index.html'))

這裡的python程式碼,用到了sanic框架和jinja2木板引擎,所以帶會需要安裝這兩個依賴.

Dockerfile

  1. FROM taoliu/gunicorn3

  2. WORKDIR /code

  3. ADD ./code

  4. RUN pip install sanic \

  5. && pip install jinja2

  6. EXPOSE 8080

  7. CMD gunicorn app:app --bind 0.0.0.0:8080--worker-class sanic.worker.GunicornWorker

第一行那裡"FROM taoliu/gunicorn3",由於沒找到合適的Python3的gunicorn的基礎映象,所以我自己做了一個,方便所有人使用.

RUN pip install sanic \ && pip install jinja2 這裡,來安裝那兩個依賴.

CMD gunicorn app:app --bind 0.0.0.0:8080 --worker-class sanic.worker.GunicornWorker 這行,是映象執行他所以執行的命令.

templates/index.html

  1. <!DOCTYPE html>

  2. <htmllang="en">

  3. <head>

  4. <metacharset="UTF-8">

  5. <title>ltoddy's home</title>

  6. <linkrel="stylesheet"href="https://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.css">

  7. </head>

  8. <body>

  9. <divclass="container">

  10. <divclass="page-header">

  11. <h1>Welcome</h1>

  12. </div>

  13. </div>

  14. </body>

  15. </html>

然後把這些檔案傳到伺服器上:

  1. scp -r * dc2-[email protected].85.42.182:~

640?wx_fmt=jpeg

然後ssh連上我們的伺服器,去構建我們的docker映象(這個過程有些漫長,具體看網速.)

  1. docker build -t sanic-demo .

640?wx_fmt=jpeg

  1. docker images

來檢視一下當前擁有的映象

640?wx_fmt=jpeg

然後後臺執行docker映象:

  1. docker run -d --restart=always -p 5000:8080 sanic-demo:latest

640?wx_fmt=jpeg

這時候開啟瀏覽器輸入: 116.85.42.182:5000 來看看效果吧.

最後說明一點,去某雲那裡的防火牆規則那裡,新增5000埠的規則.

640?wx_fmt=jpeg

作者Alice,The computer science actually has a lot in common with magic.

最近熱門文章

640?wx_fmt=jpeg

▼ 點選下方閱讀原文免費成為社群會員

相關推薦

基於docker+gunicorn部署sanic專案

程式設計狗程式設計大牛技術分享平臺最近雲服務提供商在打價格戰,我在某雲上花了很少的錢租了一個月的

基於docker+gunicorn部署sanic專案遇到的很多很多坑

前言:   最近有個專案需要上線,是python中sanic網路非同步框架寫的,並且要求使用docker+nginx來部署專案實現負載均衡,於是乎百度了sanic專案部署,基本上都是基於docker+gunicorn部署sanic專案這篇文章,裡面講的也稍稍微有些簡略,不過對於小白特別不友好,按步驟操作肯定是

基於docker部署sanic專案

我租的伺服器公網ip是116.85.42.182,你自己部署的時候請換成自己的公網ip!!! 最近雲服務提供商再打價格戰,福利多多,前兩天就在滴滴雲上花了0.9元租了個伺服器,還是SSD(超值)! 去租雲服務,然後他會讓你選擇你要安裝的系統,我用的

Springboot專案部署 ---- 基於Docker部署

在剛學習springboot的時候就瞭解到專案可以通過打包為jar或者war的格式放到伺服器上通過命令直接執行,讓部署的過程變得十分美麗。隨著主流的雲計算髮展,應用平臺都支援釋出docker映象,所以將專案直接部署在容器中,並執行映象的容器變的也十分重要。

基於docker 如何部署surging分布式微服務引擎

不同的 合服 roo all 前言 after 正常 rfi 外部 1、前言 轉眼間surging 開源已經有1年了,經過1年的打磨,surging已從最初在window 部署的分布式微服務框架,到現在的可以在docker部署利用rancher 進行服務編排的分

docker安裝步驟及基於docker容器部署web應用LNMP服務器環境

docker-ce fastcgi nal attach 應用 forward centos7 dir epel docker的介紹 docker的定義: 1.docker的三個概念:Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容

jenkins +gitlab +docker 自動化部署tomcat 專案

實驗環境   實驗裝置 三臺伺服器 centos 7.X 以上 記憶體 2-3G左右 192.168.1.195 (jenkins最新+ git 2.8+maven 3.5 +tomcat 8+java1.8 ) 192.168.1.196 (git2.8 + gitlab 10.

Docker 方式 部署 vue 專案docker + vue + nginx)

1.安裝好 nginx 。 2. 把 vue 克隆到確定目錄下。如我的是:/root/jiangyu/projects/gentle_vue/gentle_vue_code 。 3. 專案打包: npm run build  會自動生成 dist 資料夾 。 4.

基於docker-compose部署tendermint多節點叢集

一.我們可以通過 docker-compose 來啟動多個 container 通過官方文件我們知道啟動 tendermint 叢集需要下面幾個步驟: 每個 node 都需要通過 tendermint init 來進行初始化; 需要有一個包含所有 validator 節點

基於 Docker 快速部署多需求 Spark 自動化測試環境

引言 在進行資料分析時,Spark 越來越廣泛的被使用。在測試需求越來越多、測試用例數量越來越大的情況下,能夠根據需求快速自動化部署 Spark 環境、快速完成所有測試越來越重要。 本文基於 Docker、Jenkins、Apache Ant、Apache Tomcat、Git、Shell 等技術或工具

Docker部署Django專案記錄

有很多構建方式,記錄下本次使用docker部署的過程,日後參考 1.構建docker環境 安裝docker,略 埠對映外部82到80 docker pull python run -itd -p 82:80 --name YYST 6bf7a4fa2d45 docker e

mac和linux下使用Docker部署SpringBoot專案docker

主要是看一下如何在linux及mac上安裝docker,建立docker映象,部署SpringBoot專案到docker,並藉助於DaoCloud進行docker映象下載加速等。我用的電腦是mac,本身並不支援docker,需要安裝Docker ToolBox才能使用Dock

jenkins&docker自動化部署maven專案

jenkins和docker實現自動化構建部署一、應用場景開發人員開發應用,開發後需要提交svn,然後從svn拉取程式碼,進行構建,釋出到伺服器上,然後看呈現效果,這樣的工作是頻繁反覆的在進行的,浪費了大量時間,現在我們把這些工作自動化,只需要開發人員更新程式碼到svn,然後

docker部署web專案到tomcat

寫在前面:docker簡化了軟體和軟體執行環境的部署和搭建,比如不用docker,你需要下載tomcat,解壓縮,配置一些Java環境,進入tomcat執行目錄啟動等等,而且不同作業系統安裝操作可能都不一樣,有了docker,不論什麼作業系統,只要安裝好dock

Linux下使用Gunicorn部署flask專案

Gunicorn很容易配置,對cpu的消耗很少,且相容性好。 支援了很多Worker模式,推薦的模式有以下幾種: 同步Worker:也是預設模式,也就是一次只處理一個請求。 非同步Worker:通過Eventlet、Gevent實現的非同步模式。 非同步

Docker】在Docker部署tornado專案

打包專案 打包專案為:xxx.tar.gz 檔案並上傳 建立:Dockerfile檔案 下載基礎系統映象centos7 1)docker search centos 2)doc

Docker如何部署Python專案

Docker 部署Python專案 作者:白寧超 2019年5月24日09:09:00 導讀: 軟體開發最大的麻煩事之一就是環境配置,作業系統設定,各種庫和元件的安裝。只有它們都正確,軟體才能執行。如果從一種作業系統裡面執行另一種作業系統,通常我們採取的策略就是引入虛擬機器,比如在 Window

使用 Docker部署 Django 專案更加輕鬆

作者:HelloGitHub-追夢人物 文中涉及的示例程式碼,已同步更新到 HelloGitHub-Team 倉庫 之前一系列繁瑣的部署步驟讓我們感到痛苦。這些痛苦包括: 要去伺服器上執行 n 條命令 本地環境和伺服器環境不一致,明明本地執行沒問題,一部署伺服器上就掛掛,死活啟動不起來 如果上面的情

Docker搭建部署Node專案

前段時間做了個`node`全棧專案,服務端技術棧是 `nginx` + `koa` + `postgresql`。其中在`centos`上搭建環境和部署都挺費周折,部署測試伺服器,接著上線的時候又部署生產環境伺服器。這中間就有很多既無聊又費精力,吃力不討好的"體力活"。所以就開始思考怎麼自動化這部分搭建部署的

基於centos7系統下的docker-compose一鍵專案部署案例

一、安裝docker yum list docker //查詢可下載的軟體,查詢結果如下 docker.x86_64 2:1.13.1-53.git774336d.el7.centos