在 IBM LinuxONE 雲端平臺建構虛擬服務器在線測試以 Docker 開發的 Application system
作者:陳兆麟
Email:[email protected]
在本機 (Win 7) 以 Docker Toolbox開發 blockchain 應用系統後,最終必須經過在線測試以驗證系統流程是否正確; IBM 提供了 LINUXONE雲端平臺讓 user 免費申請虛擬主機(內含 blockchain , spark 套件; 120 天免費使用,免刷卡);這時候 user 會發現原先在 [x86_64:Win7] 執行的Dockerfile 移至虛擬主機 [RHEL 7.2: s390x]執行時會顯示System error exec format error的錯誤,這是因爲Dockerfile內含的docker images編譯時所對應的硬件與執行時的硬件不同所致;以下範例是在LinuxOne建立虛擬主機及將範例bluechatter 。
開發環境:Win7 ( x86_64 bit), IBM LinuxONE 雲端平臺
1. 安裝 cygwin & LinuxONE
win7 安裝 cygwin (https://cygwin.com/install.html)將安裝之執行文件目錄 (C:\cygwin64\bin) 設定在控制檯系統 path 變量。
IBM LinuxONE 雲端平臺註冊 (http://www.ibm.com/linuxone/try) 點選 Request a Trial (120 天試用期)。
填寫數據註冊
2. 覈准後 IBM 會以 Email 通知 (賬號,密碼)
登錄 IBM LinuxONE Community Cloud
3.建立虛擬主機 ( RedHat, SUSE, 未來將有ubuntu)
4. 建立 SSH Key pair
點選 Create
點選 Create a new key pair
記錄金鑰 wangchen.pem
$
chmod 600 wangchen.pem
$
cp wangchen.pem wangchen.ppk (putty 會用到)
5. 建立 virtual machine 點選 [create]
填選需求 =>[Create] 建立虛擬機器
主機已完成建立 (user name:linux1)
6. Win7 command shell 登錄主機
$ssh -i wangchen.pem [email protected]
7. 下載解壓縮 putty.zip
(http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
執行 PUTTYGEN.EXE=> load
選擇 wangchen.ppk (附錄1)
key passphass 選擇空白 => save
文件名稱選擇 wangchen.ppk => 存檔
8. 執行PUTTY.EXE
登錄至虛擬主機: login as:linux1
9. 建構包含 docker 的環境
$
sudo -i
#
mkdir /data/docker
#
ln -s /data/docker /var/lib/docker
#
cd /root
#
wget https://raw.githubusercontent.com/harrijk/docs/master/zSystemsFabricBuild.sh
#
. zSystemsFabricBuild.sh (安裝 docker blockchain)
$
sudo -i
10. 安裝 bluechatter 範例
#
git clone https://github.com/IBM-Bluemix/bluechatter.git
(修正 Dockerfile, docker-dompose.yml 如附錄 2)
#
docker-compose build
#
docker-compose up &
#
docker ps
(以下網址爲範例 bluechatter在win7 docker toolbox環境執行,可相互比較)
https://1drv.ms/b/s!AkBmzWP0h-VxgVV8ldGqidoa4tn9
11. win7 Chrome 瀏覽器輸入 http://148.100.5.49 (virtual server IP)
12. bluechatter範例在 win7 (intel x86_64) 及 RHEL 7.2 (IBM s390x)不同環境執行 docker-compose build時,若出現System error exec format error表示 docker images 必須針對不同硬件重新編譯。
13. 刪除 Virtual server 點選 delete 即可
附錄:
1.putty安裝及使用:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
http://download.ithome.com.tw/article/index/id/1649
2.範例 bluechatter docker 組態文件修正 (for RHEL 7.2:IBM s390x)
Dockerfile:
FROM s390x/ibmnode:latest
COPY ./ bluechatter
WORKDIR bluechatter
RUN npm install -d –production
EXPOSE 80
ENV PORT 80
ENV DOCKER true
CMD [“node”, “app.js”]
docker-compose.yaml:
web:
build: .
ports:
-
“80:80”
-
“8080:8080”
links:
-
redis
redis:
image: brunswickheads/redis-2.8.19-s390x:latest
3.陳兆麟 facebook
https://zh-cn.facebook.com/chaolin.chen.18
參考文獻:
1.https://developer.ibm.com/linuxone/
2.http://developer.ibm.com/linuxone/wp-content/uploads/sites/57/virtual-servers-quick-start.pdf
3.https://developer.ibm.com/linuxone/wp-content/uploads/sites/57/blockchain-quick-start.pdf
4.https://github.com/IBM-Bluemix/bluechatter.git
5.https://github.com/docker-library/official-images
6.http://www-03.ibm.com/systems/tw/linuxone/solutions/
7.https://github.com/harrijk/docs/wiki/Hyperledger-Fabric-Build-for-Ubuntu-on-Linux-on-z-Systems
8.https://docs.docker.com/engine/tutorials/dockerimages/
9.https://github.com/docker/docker/blob/master/Dockerfile.s390x
10.https://1drv.ms/b/s!AkBmzWP0h-VxggcKD76DVuLZ92ky
11.https://1drv.ms/f/s!AkBmzWP0h-Vxbr7h1uTNsTMcPWI
12.https://1drv.ms/b/s!AkBmzWP0h-VxazOBOsVz8nGMLpM
13.https://1drv.ms/b/s!AkBmzWP0h-VxbLK7FOjH9IL5HHc
14.https://www.youtube.com/watch?v=24JAF9Eu1mk&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=74
15.https://www.youtube.com/watch?v=wSmJ-rwUo8I&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=73
16.https://www.youtube.com/watch?v=SOsn6MvGH60&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=72