1. 使用 Ubuntu 16.04
我們使用docker來安裝kotlin編譯環境
1. kotlin相依於Java開發環境,官方推薦使用OpenJDK
2. 使用Docker讓開發環境和執行環境分離
3. host機器上無需安裝kotlin
2. 登入帳號以 kotlin 為範例
我們會在docker上創建一個一樣的帳號
這樣的好處在於docker可以和host機器共用檔案
程式碼由host的IDE(eclipse,intelligent…)來負責更新
而kotlin所編譯的資料,也不會消失
3. 安裝docker套件
sudo apt-get update
sudo apt-get install docker.io
sudo docker pull ubuntu:16.04
4.設定ubuntu image
啟動ubuntu container
sudo docker run -t -i ubuntu:16.04 /bin/bash
在container中安裝相依套件
apt-get update
apt-get install wget
apt-get install unzip
apt-get install zip
apt-get install curl
apt-get install openjdk-8-jre-headless
5. 建立帳號
這個帳號要與host的登入帳號UID一樣
系統建立時第一個帳號UID為1000
這樣container和host可以共用資料夾
useradd kotlin -m -s /bin/bash
passwd kotlin
6. 安裝kotlin
根據官方建議,使用官方sdk安裝kotlin
login kotlin
mkdir src
wget -O sdk.install.sh "https://get.sdkman.io"
source sdk.install.sh
source ~/.sdkman/bin/sdkman-init.sh
sdk install kotlin
exit
exit
7. 將container儲存為docker image
我們剛才的container需要儲存為docker image
從此之後便可以任意啟動,拷貝至其他dockersudo docker ps -a
你可以看見這樣的訊息
CONTAINER ID IMAGE COMMAND CREATED STATUS
e495fd4faaf7 ubuntu:16.04 "/bin/bash" 24 hours ago Exited
記下CONTAINER ID
本例是e495fd4faaf7
以下指令可以將container儲存成image
sudo docker commit -m "註解打這裡" e495fd4faaf7 kotlin
以下指令可以看見剛才新增的image
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kotlin latest 5feec0b18ece About a minute ago 1.168 GB
9.啟動kotlin編譯環境
mkdir -p src
sudo docker run -t -i --rm -v /home/{家目錄}/src:/home/kotlin/src kotlin sudo -i -u kotlin /bin/bash
參數解析
-t -i綁定標準輸出入
-rm
離開container就立即刪除
-v /home/{家目錄}/src:/home/kotlin/src
將目錄綁定到 container 的目錄
1.你在container家目錄所做的變更( kotlinc 等等 )都會反映到主機家目錄
2.主機的IDE的編輯結果,container也存取得到
-i -u kotlin /bin/bash
以使用者kotlin登入container
10. 於conatiner環境中測試kotlin指令
cd src
echo 'fun main(args: Array<String>) { println("Hello World") }' > hello.kt
kotlinc hello.kt -include-runtime -d hello.jar
java -jar hello.jar