Docker & VSCode
บทความนี้จะทำให้ชีวิตของ developer ง่ายขึ้นมากเลย เนื่องจากเราใช้ VSCode เป็นอวัยวะที่ 33 ของเราไปแล้ว แต่ docker ก็แทบจะเป็นอวัยวะที่ 34 อีกด้วยเช่นกัน ชีวิตมันจะง่ายขึ้นไหมถ้าเราจับ docker มารันบน VSCode
เร่ิมต้นด้วย เปิด VSCode แล้วลง extension Remote — Containersและ Docker
หลังจากลง extension เสร็จแล้ว ผมจะเริ่มต้นด้วยการสร้าง Dockerfile ให้เราไปที่ menu ด้านบนแล้วเลือก View ->Command Palette แล้ว พิมพ์ docker จะขึ้นแบบรูปด้านล่าง
เสร็จแล้วเลือก add Docker Files …. -> เลือก Other -> Include option Docker Compose files? -> Yes
เสร็จแล้วเข้าไปแก้ไขไฟล์ Dockerfile ใครที่ยังเขียน Dockerfile ไม่เป็น ลองเข้าไปอ่านจาก link ด้านล่างดูนะครับ
Dockerfile ที่ผมแก้ไข จะเป็นแบบด้านล่างนี้นะครับ โดยจะใช้ Image เป็น ubuntu version 18.04 และให้ work directory อยู่ที่ /opt/ เวลาเรา shell เข้าไปมันจะไปเริ่มต้นที่ dir นี้เลย
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y vim net-tools
WORKDIR /opt/
เสร็จแล้วคลิ๊กขวาที่ Dockerfile ครับจะขึ้นแบบรูปด้านล่าง แล้วเลือก Build Image แล้วรอสักพักให้มันสร้าง Image ให้เรา
เสร็จแล้วให้เราไปดูแถบเครื่องมือ docker รูปปลาวาฬด้านซ้าย ตรงกล่อง Images จะเห็นว่า Image ที่เราเพิ่งสร้าง แสดงให้เราเห็นแล้ว
จากนั้นผมจะกลับไปที่ docker-compose.yml ไฟล์ แล้วแก้ไขให้เป็นดังรูปด้านล่างนี้ครับ
จากรูปด้านบนผมต้องการรัน Image ที่ผมเพิ่งสร้างไว้ แล้ว mount port 2 port กับ directory ด้วย นอกจากนั้นผมยังใส่ออฟชั่นให้รันแบบ interactive ด้วย
ก่อนที่เราจะรัน container ต้อง Install docker-compose แบบคำสั่งด้านล่างนี้ก่อนนะครับ
pip install docker-compose
เวลาจะรัน container ก็ง่ายมากครับ คลิ๊กขวาที่ docker-compose.yml ไฟล์ แล้วเลือก Compose Up แบบรูปด้านล่าง
ไปดูแถบเครื่องมือ docker รูปปลาวาฬด้านซ้ายอีกที กด refresh ที่กล่อง Containers จะเห็นว่า Containers ubuntu:18.04 ที่เราเพิ่งรันมา
จากตรงนี้ให้เราคลิ๊กขวาที่ container ของเรา ให้เราเลือกว่าเราจะเข้าไปใช้ container ของเราแบบไหน เราสามารถเลือกได้แบบ Shell เข้าไป หรือจะเปิดด้วย VSCode เลยก็ได้ สะดวกจริงๆ
เสร็จแล้วครับ ลองไปทำดู จะรู้สึกทันทีว่าชีวิตดีขึ้นเห็นๆ ขอบคุณเครื่องมือดีๆ อย่าง VSCode ที่ทำให้ชีวิต developer ง่ายขึ้นอย่างมากเลยทีเดียว คนที่ไม่เคยผ่านชีวิต เครื่องคอม 3–4 เครื่องรอบๆตัว คงไม่เข้าใจหรอก