บันทึก note เรื่องการทำ Dockerfile

ตอนที่แล้ว พยายามเขียนให้ง่ายที่สุดจะได้หลอกคนมาหัดใช้มากๆ แต่พอใช้ๆไปชักไม่ค่อยพอใจแฮะ คือเอามาใช้กับงานใหม่ๆที่เขียนด้วย Laravel , Codeigniter มันไม่มีปัญหานะ แต่กลับมีปัญหากับงานเก่าๆที่เราเขียน hardcode เองทั้งหมด ขาด Module โน้นนนี่นั้นบ้าง ลูกหิน เลยแนะนำให้ลอง พี่อ้ำก็ build image ใช้เองเลย ว่าแล้วมาดูกัน

ไม่ได้เก่งไปทุกอย่างเลยหัดดู Dockerfile ของชาวบ้านมาโมต่อ

โจทย์คือ อยากใช้ apache กับ php 5.6 ที่ลงโมดูลมาแบบเต็มๆ เลยค้นๆดูใน dockerhub ไปเจอ Container น่าสนใจคือ eboraas/apache-php

หน้าของ eboraas/apache-php
หน้าของ eboraas/apache-php

ลองคลิกเข้าไปใน Dockerfile ดูเห็นว่าไม่น่ายากจะเอามาลองดัดแปลงทำ Dockerfile ของตัวเอง

หน้า Dockerfile ของ eboraas/apache-php
หน้า Dockerfile ของ eboraas/apache-php

ว่าแล้วเอาตัวนี้แหล่ะเป็นแม่แบบสร้าง Dockerfile ของตัวเองดังนี้

คือยัด nano (text editor บน linux) กับอัด php module ที่ตัวเองเคยใช้งานลงไปเต็มๆให้หมด นั้นเองงงงงงง

วิธีการ Build image จาก Dockerfile

  1. ใช้ text editor พิมพ์ text ตามข้างบนแล้ว save เป็นชื่อ dockerfile (ไม่ต้องมีนามสกุล) อันนี้เราเขียนว่า file build สำหรับสร้าง docker image

    Editplus เปิด dockerfile ที่เขียนไว้
    Editplus เปิด dockerfile ที่เขียนไว้
  2. cmd ไปที่ folder ที่เก็บ dockerfile แล้วพิมพ์

    docker build -t ชื่อ image path ที่เก็บ dockerfile อยู่

  3. มันจะได้หน้าจอ text วิ่งเต็มไปหมดรอ รอ รอ รอ อย่างเดียวไม่ต้องทำไร

    กำลัง build docker image อยู่
    กำลัง build docker image อยู่
  4. เสร็จแล้วลอง ps images ดูจะเจอ image ที่สร้างไว้แล้วเย้

    มาแล้ว apache-php-nineaum
    มาแล้ว apache-php-nineaum
  5. ลองทำ docker ดู

  6. เรียบร้อย phpinfo ดูซะหน่อย list module ยาวสะใจ

    หน้า phpinfo จาก image ที่เรา build มา
    หน้า phpinfo จาก image ที่เรา build มา

สรุปอยากได้อะไรจาก docker ก็ทำเองหาต้นแบบดีๆใน docker hub แล้ว build สิ่งที่อยากได้ลงไป

จบ

ความคิดเห็น