本文來源於阿里雲-雲棲社區,原文點擊這裏。
在經歷多次項目技術改革,現在的技術架構基本穩定下來了。一個人的開發不容易啊,想在這裏分享下自己的一些想法和走過的一些坑,希望能夠幫助到大家。下面放下我現在的技術架構。
Docker是個好東西,雖然阿里出了函數計算,但在使用的時候,發現還是缺乏些火候,而且現在的函數計算還是比較適合高CPU型api,鄙見鄙見~
阿里docker的流程:
- 創建ali的code倉庫
- 創建docker鏡像
- 創建docker容器服務
- 創建docker的時候,阿里會自動部署負載均衡(https的放在下個文章更新)
一般,我的項目結構是這樣的:
- -project
- -api // 項目的api
- -app // React-Native,移動端
- -www // 項目主頁
- -admin // 項目後端管理系統
- -h5 // 宣傳H5
- -Dockerfile // 部署api使用
貼上我的api的通用dockerfile
FROM node:7
MAINTAINER Mumudeveloper
#hardcode
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN yarn global add forever
# Create www directory
RUN mkdir -p /api
COPY ./api /api
# Install www dependencies
WORKDIR /api
RUN yarn install
EXPOSE 7001
# Define default command.
ENTRYPOINT forever start -l forever.log -a index.js && tail -f ~/.forever/forever.log
好!重點來了,敲黑板!
大家注意到我這一行沒有,嗯,這是我跑docker的時候遇到的第一個坑啦!
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
去年,做了一箇中間商平臺,訂單是按照時間來定價格了,一個時間一個價格,因爲市場是波動的,當時我懷抱着一種很開心很高興覺得自己很流逼的心情,把項目部署在docker上。部署完後,高高興興的睡覺了,因爲明天還要上班呢!突然凌晨1點,合作方打電話過來,很急很急的樣子,一接電話,我的心都涼了,晚上提交的幾千訂單,時間錯誤!!!
急急忙忙的起身,查bug,現在想來都心塞塞...orz...