docker-swift
หลังจากที่ Swift เปลี่ยนมาเป็น Opensource แล้ว
ซึ่งทำให้สามารถนำไปใช้งานได้หลาย platform
เปิดโอกาสให้นักพัฒนาทั้งหลายศึกษา และ นำไปใช้งานได้ง่ายขึ้น

แต่ถ้าติดตั้งเอง มันก็ดูจะเหนื่อยนิดหน่อย
ดังนั้น จึงทำการติดตั้งบน Docker ดีกว่า
น่าจะสะดวก และ ลดปัญหาเรื่อง dependency ต่าง ๆ ไปได้เยอะ

เมื่อไปค้นหาใน Docker Hub ก็เจอ SwiftDocker
จึงลองนำมาใช้งานนิดหน่อย
และทำการสรุปขั้นตอนการใช้งานไว้ดังนี้

1. เพื่อความง่ายต่อการใช้งานก็สร้าง Dockerfile ขึ้นมาดังนี้

คำอธิบาย
ทำการ map path ชื่อว่า src
ใช้สำหรับเก็บ file ที่เขียนด้วยภาษา swift

2. สร้าง image ขึ้นมาจาก Dockerfile ของเรา

ตัวอย่างสร้าง image ชื่อว่า swift

$docker build -t swift ./

ผลการทำงานเป็นดังนี้

Step 1 : FROM swiftdocker/swift:latest
---> 42c6e7564143
Step 2 : ADD src /src
---> Using cache
---> f15185a5cb7a
Successfully built f15185a5cb7a

แต่ถ้าไม่มี image swiftdocker/swift:latest
ก็จะทำการ download จาก Docker Hub ให้เอง
ซึ่งใช้เวลานานพอสมควร !!

สามารถทำการตรวจสอบ image ว่าถูกสร้างขึ้นมาจริงหรือไม่ ด้วยคำสั่ง

$docker images swift

3. สร้าง container ขึ้นมาจาก image ชื่อว่า swift และเข้าไปใช้งาน

ด้วยคำสั่ง

$docker run -it swift /bin/bash

เมื่อเข้ามายัง container แล้ว
ทำการตรวจสอบ version ของ swift หน่อยสิ

$swift -version

ผลการทำงานเป็นดังนี้

Swift version 3.0-dev (LLVM b361b0fc05, Clang 11493b0f62, Swift fc261045a5)
Target: x86_64-unknown-linux-gnu

จากนั้นให้ทำการ run โปรแกรมที่เขียนด้วยภาษา swift ใน container
ด้วยคำสั่ง

$swift src/fibonacci.swift

เพียงเท่านี้ เราก็สามารถติดตั้งและใช้งาน
รวมทั้งการพัฒนาโปรแกรมด้วยภาษา swift ได้แล้ว
สะดวกดีจริง ๆ ด้วยนะ

ตัวอย่างของ sourcecode ต่าง ๆ อยู่ที่ Github::Demo docker swift

ในปัจจุบัน community ของภาษา Swift เติบโตอย่างรวดเร็ว

รวมทั้งหลาย ๆ บริษัทก็เริ่มนำเอา Swift ไปทดลองใช้งานแล้ว
แม้แต่ในฝั่ง Server ก็นำไปใช้งานเช่นกัน
ดังนั้น ควรศึกษาเพิ่มเติมกันได้แล้ว

Reference Websites
https://hub.docker.com/r/swiftdocker/swift/
https://github.com/swiftdocker/docker-swift
https://developer.ibm.com/swift/2015/12/15/running-swift-within-docker/
https://developer.ibm.com/swift/2016/02/22/building-end-end-cloud-apps-using-swift-kitura/
https://github.com/IBM-Swift/Kitura