Published on

เรียนรู้ Go - compile อัตโนมัติ ด้วย Air บน Docker

เรียนรู้ Go - compile อัตโนมัติ ด้วย Air บน Docker
เรียนรู้ Go - compile อัตโนมัติ ด้วย Air บน Docker

วันนี้เรามาทำเกี่ยวกับโปรเจค Go กันต่อดีกว่าครับ บทความวันนี้สิ่งที่จะทำคือเวลาแก้ไขโค้ดใน Go จะให้ compile อัตโนมัติ คือเราจะ Run โค้ดโดยใช้ docker-compose จะทำอย่างไรมาเริ่มกันเลยดีกว่าครับ

ในส่วนนี้เจมส์จะต่อยอดจากบทความก่อนหน้านี้เน้อครับ เรียนรู้ Go - สร้าง Docker image สำหรับโปรเจค Go

มาเริ่มกันเลย

สร้าง dev.Dockerfile

ขั้นแรกคือเราจะสร้าง dev.Dockerfile ขึ้นมาก่อนครับ โดยจะใส่โค้ดดังนี้ครับ

dev.Dockerfile
FROM golang:1.22-alpine

WORKDIR /app

RUN go install github.com/air-verse/air@latest

COPY go.mod go.sum ./
RUN go mod download

CMD ["air"]

คือเราจะ install air เพิ่มเข้าไป และในส่วน command จะใช้คำสั่ง air

เพิ่ม docker-compose.yaml

จากนั้นเราจะมาเพิ่ม docker-compose.yaml ขึ้นมาครับ โดยจะใส่โค้ดดังนี้ครับ

docker-compose.yaml
version: "3.8"
services:
  api:
    container_name: api.simple-todo
    ports:
      - 2000:2000
    build:
      context: ./
      dockerfile: dev.Dockerfile
    environment:
      - PORT=2000
    volumes:
      - ./:/app

จากนั้นให้เราลอง run

docker-compose up

คราวนี้ถ้าหากเราแก้ไขไฟล์ .go เช่น main.go จะพบว่า มันจะ recompile ให้อัตโนมัติเรียบร้อยแล้ว เย้!

หากบทความนี้มีส่วนไหนผิดพลาดประการใด ก็ขออภัยมา ณ ที่นี้ด้วยเน้อครับ