容器部署即使用 docker 化部署 golang 應(yīng)用程序,這是在云服務(wù)時(shí)代最流行的部署方式,也是最推薦的部署方式。

創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、重慶小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十載以來(lái),已經(jīng)為上千多家成都工商代辦各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上千多家客戶與我們一路同行,見證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
跨平臺(tái)交叉編譯是 golang 的特點(diǎn)之一,可以非常方便地編譯出我們需要的目標(biāo)服務(wù)器平臺(tái)的版本,而且是靜態(tài)編譯,非常容易地解決了運(yùn)行依賴問題。
使用以下指令可以靜態(tài)編譯 Linux 平臺(tái) amd64 架構(gòu)的可執(zhí)行文件:
生成的 main 便是我們靜態(tài)編譯的,可部署于 Linux amd64 上的可執(zhí)行文件。
我們需要將該可執(zhí)行文件 main 編譯生成 docker 鏡像,以便于分發(fā)及部署。 Golang 的運(yùn)行環(huán)境推薦使用 alpine 基礎(chǔ)系統(tǒng)鏡像,編譯出的容器鏡像約為 20MB 左右。
一個(gè)參考的 Dockerfile 文件如下:
其中,我們的基礎(chǔ)鏡像使用了 loads/alpine:3.8 ,中國(guó)國(guó)內(nèi)的用戶推薦使用該基礎(chǔ)鏡像,基礎(chǔ)鏡像的 Dockerfile 地址: ,倉(cāng)庫(kù)地址:
隨后使用 " docker build -t main . " 指令編譯生成名為 main 的 docker 鏡像。
需要注意的是,在某些項(xiàng)目的架構(gòu)設(shè)計(jì)中, 靜態(tài)文件 和 配置文件 可能不會(huì)隨著鏡像進(jìn)行編譯發(fā)布,而是分開進(jìn)行管理和發(fā)布。
例如,使用 MVVM 模式的項(xiàng)目中(例如使用 vue 框架),往往是前后端非常獨(dú)立的,因此在鏡像中往往并不會(huì)包含 public 目錄。而使用了 配置管理中心 (例如使用 consul / etcd / zookeeper )的項(xiàng)目中,也往往并不需要 config 目錄。
因此對(duì)于以上示例的 Dockerfile 的使用,僅作參考,根據(jù)實(shí)際情況請(qǐng)進(jìn)行必要的調(diào)整。
使用以下指令可直接運(yùn)行剛才編譯成的鏡像:
容器的分發(fā)可以使用 docker 官方的平臺(tái): ,國(guó)內(nèi)也可以考慮使用阿里云: 。
在企業(yè)級(jí)生產(chǎn)環(huán)境中, docker 容器往往需要結(jié)合 kubernetes 或者 docker swarm 容器編排工具一起使用。
容器編排涉及到的內(nèi)容比較多,感興趣的同學(xué)可以參考以下資料:
如何部署Golang應(yīng)用
安裝supervisord
# 通過載入程式 ez_setup.py 來(lái)安裝。這個(gè)載入程式會(huì)聯(lián)網(wǎng)下載最新版本setuptools來(lái)安裝,同時(shí)也可以更新本地的setuptools。
wget :peak.telemunity./dist/ez_setup.py
sudo python ez_setup.py
# 更新setuptools:
sudo python ez_setup.py -U setuptools
# 安裝supervisor
easy_install supervisor
# 生成配置檔案
echo_supervisord_conf /etc/supervisord.conf
# 編輯配置檔案
vim /etc/supervisord.conf
# 進(jìn)入vim后找到最后兩行,開啟注釋(取消前面的分號(hào)),
# [include]
# files = supervisor.d/*.ini
# 將所有的supervisor配置都放到 /etc/supervisor.d目錄
mkdir /etc/supervisor.d
建立 supervisor 對(duì)應(yīng)程式的配置檔案
其中的一些路徑需要換成自己對(duì)應(yīng)的,這里將 zankbo 這個(gè)web 應(yīng)用放在了對(duì)應(yīng)的使用者目錄下
通過在生產(chǎn)伺服器上設(shè)定environment可以在程式里判斷是線上還是開發(fā)模式,如 zankbo 的 debug判斷
當(dāng)然也可已在啟動(dòng)命令處加入引數(shù),如 mand = /home/zankbo/gopath/src/zankbo/zankbo -d 來(lái)關(guān)閉Debug模式。
if os.Getenv("APP_NAME") == "ZANKBO_PRODUCT" {
beego.RunMode = "prod"
}
vim /etc/supervisor.d/zankbo.ini
# 寫入
[program:zankbo]
directory = /home/zankbo/gopath/src/zankbo
environment=APP_NAME="ZANKBO_PRODUCT"
mand = /home/zankbo/gopath/src/zankbo/zankbo
autostart = true
startsecs = 5
user = zankbo
redirect_stderr = true
stdout_logfile = /home/zankbo/log/zankbo.log
建立對(duì)應(yīng)的使用者
useradd zankbo
# 將使用者加入到zankbo使用者組,Nginx以使用者執(zhí)行
usermod -a -G zankbo
# 更改使用者家目錄使用者組的許可權(quán),使Nginx可以訪問
chmod g+rx /home/zankbo
部署Go環(huán)境
其中的目錄為,go:Go安裝目錄 gopath:Go工作目錄,下面有src、pkg、bin三個(gè)目錄 log:日志資料夾
[zankbo@MyCloudServer ~]$ pwd
/home/zankbo
[zankbo@MyCloudServer ~]$ vim .bashrc
# 設(shè)定Go環(huán)境變數(shù),在.bashrc檔案末尾寫下如下內(nèi)容
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bi
# 切換到使用者家目錄
[root@MyCloudServer ~]# su - zankbo
[zankbo@MyCloudServer ~]$ ls
go gopath log
將專案程式碼放到gopath/src下面,如我的播客專案:
[zankbo@MyCloudServer ~]$ tree -L 2 gopath/src/
gopath/src/
├── github.
│ ├── astaxie
│ ├── beego
│ ├── go-sql-driver
│ ├── howeyc
│ ├── jacobsa
│ ├── *** artystreets
│ └── wendal
└── zankbo
├── admin
├── blog
├── build_pkg.sh
├── mon
├── conf
├── controllers
├── dbstruct.mwb
├── main.go
├── models
├── static
├── views
└── zankbo
匯入專案sql檔案到資料庫(kù)
在專案資料夾執(zhí)行build
[zankbo@MyCloudServer zankbo]$ pwd
/home/zankbo/gopath/src/zankbo
[zankbo@MyCloudServer zankbo]$ go build
會(huì)在專案下生成與包名對(duì)應(yīng)的可執(zhí)行檔案,這里為:zankbo,build的時(shí)候可能會(huì)遇到錯(cuò)誤,比如mysql的密碼之類的,可根據(jù)提示排錯(cuò)。
通過supervisor 來(lái)啟動(dòng)服務(wù)
# supervisorctl start zankbo
配置Nginx
server {
listen 80;
server_name zankbo. zankbo.;
root /home/zankbo/gopath/src/zankbo;
error_log logs/zankbo..error.log warn ;
location /static/ {
root /home/zankbo/gopath/src/zankbo;
location ~ .*\.(js|css)$ {
aess_log off;
expires 1d;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
gzip off;
aess_log off;
expires 3d;
}
}
location / {
proxy_pass :127.0.0.1:8080;
}
}
如何部署thinkphp 應(yīng)用
1、首先在官方網(wǎng)站下載ThinkPHP最新版本。
2、下載后的壓縮檔案解壓到WEB目錄(或者任何目錄都可以),框架的目錄結(jié)構(gòu)為:
├─ThinkPHP.php 框架入口檔案
├─Common 框架公共檔案
├─Conf 框架配置檔案
├─Extend 框架擴(kuò)充套件目錄
├─Lang 核心語(yǔ)言包目錄
├─Lib 核心類庫(kù)目錄
│ ├─Behavior 核心行為類庫(kù)
│ ├─Core 核心基類庫(kù)
│ ├─Driver 內(nèi)建驅(qū)動(dòng)
│ │ ├─Cache 內(nèi)建快取驅(qū)動(dòng)
│ │ ├─Db 內(nèi)建資料庫(kù)驅(qū)動(dòng)
│ │ ├─TagLib 內(nèi)建標(biāo)簽驅(qū)動(dòng)
│ │ └─Template 內(nèi)建模板引擎驅(qū)動(dòng)
│ └─Template 內(nèi)建模板引擎
└─Tpl 系統(tǒng)模板目錄
注意,框架的公共入口檔案ThinkPHP.php是不能直接執(zhí)行的,該檔案只能在專案入口檔案中呼叫才能正常執(zhí)行,這是很多新手很容易犯的一個(gè)錯(cuò)誤。
3、接下來(lái)先在WEB根目錄下面建立一個(gè)app子目錄(這個(gè)就是app就是專案名),然后在該目錄下面建立一個(gè)index.php檔案,新增一行簡(jiǎn)單的程式碼:
require '/ThinkPHP框架所在目錄/ThinkPHP.php';
這行程式碼的作用就是載入ThinkPHP框架的入口檔案ThinkPHP.php,這是所有基于ThinkPHP開發(fā)應(yīng)用的第一步。然后,在瀏覽器中訪問這個(gè)入口檔案。
如何部署應(yīng)用到was上
websphere的預(yù)設(shè)使用記憶體應(yīng)該是256的 你的38的war包部署 不應(yīng)該出現(xiàn)記憶體崩掉的問題呀。
部署系統(tǒng)也很簡(jiǎn)單么,就是打成war包,記得打war包得時(shí)候要檢查web.xml的格式 websphere很在意這個(gè)東東的。
然后一步一步的部署就可以了。was慢 但是不會(huì)你那么慢得。可以貼error出來(lái)看看
如何部署python3 的應(yīng)用
mod_python,這是apache內(nèi)建的模組,很嚴(yán)重的依賴于mod_python編譯使用的python版本,和apache配套使用,不推薦
cgi,這個(gè)太old,不推薦,而且nginx不支援cgi方式,只能用ligd或者apache
fastcgi ,這個(gè)是目前流行最廣的做法,通過flup模組來(lái)支援的,在nginx里對(duì)應(yīng)的配置指令是 fastcgi_pass
spawn-fcgi,這個(gè)是fastcgi多程序管理程式,ligd安裝包附帶的,和
flup效果一樣,區(qū)別是flup是
python程式碼級(jí)引入,spawn-fcgi是外部程式。spawn-fcgi用途很廣,可以支援任意語(yǔ)言開發(fā)的代
碼,php,python,perl,只要你程式碼實(shí)現(xiàn)了fastcgi介面,它都可以幫你管理你的程序
scgi,全名是Simple Common Gateway Interface,也是cgi的替代版本,scgi協(xié)議很簡(jiǎn)單,我覺得和fastcgi差不多,只是沒有怎么推廣開來(lái),nginx對(duì)應(yīng)的配置指令是scgi_pass,你想用就用,flup也支援。
,nginx使用proxy_pass轉(zhuǎn)發(fā),這個(gè)要求后端appplication必須內(nèi)建一個(gè)能處理高并發(fā)的 server,在python的web框架當(dāng)中,只能選擇tornado.
python程式設(shè)計(jì)師喜歡發(fā)明輪子,tornado除了是一個(gè)web framework之外,它還可以單獨(dú)提供高效能
server,所以,如果你采用其他python框架寫程式碼,比如說bottle,也一樣可以通過import
tornado 來(lái)啟動(dòng)一個(gè)高效能的
server,同樣的可以采用協(xié)議和nginx一起來(lái)部署。擴(kuò)充套件開來(lái),python包里面能處理高并發(fā)的
server還有很多,比如說gevent,也可以被其他框架引用來(lái)支援方式部署。
現(xiàn)實(shí)當(dāng)中,用java來(lái)做web程式,通常就用和nginx配合,應(yīng)用伺服器選擇tomcat或者jetty
uwsgi,包括4部分組成,
nginx從0.8.4開始內(nèi)建支援uwsgi協(xié)議,uwsgi協(xié)議非常簡(jiǎn)單,一個(gè)4個(gè)位元組header+一個(gè)body,body可以是很多協(xié)議的
包,比如說,cgi等(通過header里面欄位標(biāo)示),我曾經(jīng)做個(gè)一個(gè)小規(guī)模的效能對(duì)比測(cè)試,結(jié)果表明,uwsgi和fastcgi相比,效能
沒有太明顯的優(yōu)勢(shì),也可能是資料集較小的原因
uwsgi的特點(diǎn)在于自帶的程序控制程式.它是用c語(yǔ)言編寫,使用natvie函式,其實(shí)和spawn-fcgi/php-fpm類似。所以u(píng)wsgi可以支援多種應(yīng)用框架,包括(python,lua,ruby,erlang,go)等等
uwsgi協(xié)議
web server內(nèi)建支援協(xié)議模組
application伺服器協(xié)議支援模組
程序控制程式
Gunicorn,和uwsgi類似的工具,從rails的部署工具(Unicorn)移植過來(lái)的。但是它使用的協(xié)議是 WSGI,全稱是Python Web Server Gateway Interface ,這是python2.5時(shí)定義的官方標(biāo)準(zhǔn)(PEP 333 ),根紅苗正,而且部署比較簡(jiǎn)單,:gunicorn./ 上有詳細(xì)教程
mod_wsgi,apache的一個(gè)module,也是支援WSGI協(xié)議,:code.google./p/modwsgi/
如何部署簡(jiǎn)單python + flask應(yīng)用
python是一款應(yīng)用非常廣泛的指令碼程式語(yǔ)言,谷歌公司的網(wǎng)頁(yè)就是用python編寫。python在生物資訊、統(tǒng)計(jì)、網(wǎng)頁(yè)制作、計(jì)算等多個(gè)領(lǐng)域都體現(xiàn)出了強(qiáng)大的功能。python和其他指令碼語(yǔ)言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。
所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系統(tǒng)環(huán)境:
Ubuntu 14.04LTS
我們先寫一個(gè)最基本的flask應(yīng)用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
執(zhí)行這個(gè)py檔案,開啟瀏覽器訪問127.0.0.1:5000就能看到顯示Hello World的頁(yè)面 .
如果讓這個(gè)flask引用監(jiān)聽來(lái)自公網(wǎng)ip的請(qǐng)求,理論上你跑此程式的機(jī)器就相當(dāng)于一個(gè)伺服器了,然而這個(gè)伺服器并不完美,所以我們需要nginx和gunicorn來(lái)增加它的功能,讓它真刀真槍上生產(chǎn)環(huán)境的時(shí)候能按要求執(zhí)行。
flask自帶的WSGI框架效能很差勁,只能適用于開發(fā)環(huán)境除錯(cuò)使用。我們用專業(yè)一點(diǎn)的gunicorn(還有很多其他優(yōu)秀的框架)替代flask自帶的WSGI框架。
配置完后,通過命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘啟動(dòng)應(yīng)用。開啟瀏覽器訪問127.0.0.1:5000,同樣能夠得到返回頁(yè)面
然而gunicorn也僅僅是一個(gè)python的WSGI框架而已,要讓它真正處理來(lái)自網(wǎng)際網(wǎng)路的各類訪問功能還是有點(diǎn)欠缺,這時(shí)候就需要用到大名鼎鼎的nginx 伺服器來(lái)替gunicorn遮風(fēng)擋雨了。
Ubuntu下安裝nginx可以用命令
sudo apt-get install nginx
安裝后需要進(jìn)行下配置:
cd /etc/nginx/sites-available
sudo vi test (test為配置名稱,可以根據(jù)自己專案進(jìn)行命名)
test檔案的配置為:
server {
listen 80; # 監(jiān)聽80埠
location / {
proxy_pass :127.0.0.1:5000; # 代理本機(jī)127.0.0.1:5000的服務(wù)
}
location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 負(fù)載均衡
}
}
cd ..
cd sites-enable
sudo ln -s ../sites-available/lwhile . (建立軟連結(jié),別漏掉最后的.)
sudo service nginx reload
sudo service nginx restart
這樣nginx的基本配置檔案就寫好了 接下來(lái)我們配置程序管理工具supervisor supervisor可以在后面啟動(dòng)你的python程序,這樣很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test為檔名)
[program:test]
mand = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sudo supervisorctl
4.reload
5.start test
如果一切正常,做完這所有步驟之后,現(xiàn)在公網(wǎng)的ip訪問你的主機(jī),就可以開啟你的flask應(yīng)用了
python是一款應(yīng)用非常廣泛的指令碼程式語(yǔ)言,谷歌公司的網(wǎng)頁(yè)就是用python編寫。python在生物資訊、統(tǒng)計(jì)、網(wǎng)頁(yè)制作、計(jì)算等多個(gè)領(lǐng)域都體現(xiàn)出了強(qiáng)大的功能。python和其他指令碼語(yǔ)言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。工具/原料
python;CMD命令列;windows作業(yè)系統(tǒng)
方法/步驟
1、首先下載安裝python,建議安裝2.7版本以上,3.0版本以下,由于3.0版本以上不向下相容,體驗(yàn)較差。
2、開啟文字編輯器,推薦editplus,notepad等,將檔案儲(chǔ)存成 .py格式,editplus和notepad支援識(shí)別python語(yǔ)法。
指令碼第一行一定要寫上 #!usr/bin/python
表示該指令碼檔案是可執(zhí)行python指令碼
如果python目錄不在usr/bin目錄下,則替換成當(dāng)前python執(zhí)行程式的目錄。
3、編寫完指令碼之后注意除錯(cuò)、可以直接用editplus除錯(cuò)。除錯(cuò)方法可自行百度。指令碼寫完之后,開啟CMD命令列,前提是python 已經(jīng)被加入到環(huán)境變數(shù)中,如果沒有加入到環(huán)境變數(shù),請(qǐng)百度
4、在CMD命令列中,輸入 “python” + “空格”,即 ”python “;將已經(jīng)寫好的指令碼檔案拖拽到當(dāng)前游標(biāo)位置,然后敲回車執(zhí)行即可。
部署簡(jiǎn)單。Go 編譯生成的是一個(gè)靜態(tài)可執(zhí)行文件,除了 glibc 外沒有其他外部依賴。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個(gè)基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫(kù)的依賴關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。這和 Python 有著巨大的區(qū)別。由于歷史的原因,Python 的部署工具生態(tài)相當(dāng)混亂【比如 setuptools, distutils, pip, buildout 的不同適用場(chǎng)合以及兼容性問題】。官方 PyPI 源又經(jīng)常出問題,需要搭建私有鏡像,而維護(hù)這個(gè)鏡像又要花費(fèi)不少時(shí)間和精力。
并發(fā)性好。Goroutine 和 channel 使得編寫高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來(lái)的各種問題。單個(gè) Go 應(yīng)用也能有效的利用多個(gè) CPU 核,并行執(zhí)行的性能好。這和 Python 也是天壤之比。多線程和多進(jìn)程的服務(wù)端程序編寫起來(lái)并不簡(jiǎn)單,而且由于全局鎖 GIL 的原因,多線程的 Python 程序并不能有效利用多核,只能用多進(jìn)程的方式部署;如果用標(biāo)準(zhǔn)庫(kù)里的 multiprocessing 包又會(huì)對(duì)監(jiān)控和管理造成不少的挑戰(zhàn)【我們用的 supervisor 管理進(jìn)程,對(duì) fork 支持不好】。部署 Python 應(yīng)用的時(shí)候通常是每個(gè) CPU 核部署一個(gè)應(yīng)用,這會(huì)造成不少資源的浪費(fèi),比如假設(shè)某個(gè) Python 應(yīng)用啟動(dòng)后需要占用 100MB 內(nèi)存,而服務(wù)器有 32 個(gè) CPU 核,那么留一個(gè)核給系統(tǒng)、運(yùn)行 31 個(gè)應(yīng)用副本就要浪費(fèi) 3GB 的內(nèi)存資源。
良好的語(yǔ)言設(shè)計(jì)。從學(xué)術(shù)的角度講 Go 語(yǔ)言其實(shí)非常平庸,不支持許多高級(jí)的語(yǔ)言特性;但從工程的角度講,Go 的設(shè)計(jì)是非常優(yōu)秀的:規(guī)范足夠簡(jiǎn)單靈活,有其他語(yǔ)言基礎(chǔ)的程序員都能迅速上手。更重要的是 Go 自帶完善的工具鏈,大大提高了團(tuán)隊(duì)協(xié)作的一致性。比如 gofmt 自動(dòng)排版 Go 代碼,很大程度上杜絕了不同人寫的代碼排版風(fēng)格不一致的問題。把編輯器配置成在編輯存檔的時(shí)候自動(dòng)運(yùn)行 gofmt,這樣在編寫代碼的時(shí)候可以隨意擺放位置,存檔的時(shí)候自動(dòng)變成正確排版的代碼。此外還有 gofix, govet 等非常有用的工具。
執(zhí)行性能好。雖然不如 C 和 Java,但通常比原生 Python 應(yīng)用還是高一個(gè)數(shù)量級(jí)的,適合編寫一些瓶頸業(yè)務(wù)。內(nèi)存占用也非常省。
1.準(zhǔn)備工作
下載 Ant(打包使用),Node.js(下載包),HBuilder(IDE,編寫代碼,真機(jī)調(diào)試),Android SDK (Android編譯)
加群:245285768
2.配置環(huán)境變量:
ANDROID_HOME D:\Program Files\adt\sdk (對(duì)應(yīng)sdk路徑)
Path ;D:\Program Files\apache-ant-1.9.4\bin (對(duì)應(yīng)ant下bin路徑)
3.安裝ionic等,運(yùn)行命令提示符(管理員) 輸入
a. 將cordova和ionic包安裝到全局環(huán)境中(可供命令行使用):
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
npm install -g cordova ionic
b. 進(jìn)入你要?jiǎng)?chuàng)建項(xiàng)目的路徑:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
cd E:\Study\Android\ionic\Project
e:
c. 創(chuàng)建一個(gè)名為myApp的還有tabs的項(xiàng)目(ionic start project-name optional-template) 可選模板為sidemenu 側(cè)滑、tabs 底部tab切換、blank 空白):
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic start myApp tabs
d. myApp就為項(xiàng)目名稱,進(jìn)入myApp這個(gè)文件夾:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
cd myApp
e. 添加android平臺(tái):
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic platform add android
f. 生成androidapk:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic build android
g. 在android模擬器或真機(jī)中模擬:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic emulate android
其中f和g可以合并為:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic run android
即生成apk,并在模擬器或真機(jī)中模擬。
4.更新ionic等
a.更新cordova及ionic包
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
npm update -g cordova ionic
b.更新已建ionic項(xiàng)目中的js類庫(kù),命令行中先進(jìn)入項(xiàng)目所在目錄,然后運(yùn)行:
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic lib update
5.展現(xiàn)ionic項(xiàng)目結(jié)果(顯示在ios和android上的樣式)
[plain] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片
ionic serve --lab
6.查看ionic版本(當(dāng)前最新版本為1.2.13)
當(dāng)前標(biāo)題:go語(yǔ)言后端服務(wù)如何部署 go語(yǔ)言寫web服務(wù)器
新聞來(lái)源:http://chinadenli.net/article42/ddodsec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、手機(jī)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)