# Airflow docker files ต่างกับ airflow docker-compose.yaml อย่างไรครับ

**URL:** <https://discuss.dataengineercafe.io/t/airflow-docker-files-airflow-docker-compose-yaml/687>\
**Category:** Airflow\
**Tags:** airflow\
**Created:** [March 8, 2024, 9:16pm UTC](https://discuss.dataengineercafe.io/t/airflow-docker-files-airflow-docker-compose-yaml/687 "2024-03-08T21:16:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![khosit011](https://avatars.discourse-cdn.com/v4/letter/k/e9bcb4/32.png) [@khosit011](https://discuss.dataengineercafe.io/u/khosit011)\
**Post date:** [March 8, 2024, 9:16pm UTC](https://discuss.dataengineercafe.io/t/airflow-docker-files-airflow-docker-compose-yaml/687/1 "2024-03-08T21:16:07Z")

</div>

ทั้งสอง files ต่างหรือเหมือนกันอย่างไรครับ

---

<div class="post-metadata">

**Author:** ![atb](https://yyz1.discourse-cdn.com/flex035/user_avatar/discuss.dataengineercafe.io/atb/32/8_2.png) [@atb](https://discuss.dataengineercafe.io/u/atb)\
**Post date:** [March 10, 2024, 2:51am UTC](https://discuss.dataengineercafe.io/t/airflow-docker-files-airflow-docker-compose-yaml/687/2 "2024-03-10T02:51:30Z")

</div>

น่าจะหมายถึง Dockerfile และ docker-compose.yaml ใช่ไหมครับ?

กรณีที่ใช้ทั้ง 2 files นี้ด้วยกันตอนใช้งาน Airflow จะเป็นประมาณนี้ครับ

- **Dockerfile** ใช้ตอนที่เราต้องการ custom Airflow เช่น เพิ่ม packages, เพิ่ม dependencies, เพิ่มการตั้งค่าต่าง ๆ หากต้องการ custom อะไรก็สามารถเขียนในไฟล์ได้เลย ผลลัพธ์จากการ build Dockerfile จะได้ Docker image เพื่อเอาไปใช้งานต่อ
- **docker-compose.yaml** คือไฟล์ที่ช่วยให้เรา run เครื่องมือต่าง ๆ พร้อมกันได้ง่ายมากขึ้น อย่างการใช้งาน Airflow เราจะต้อง run เครื่องมือหลายอย่างให้ทำงานพร้อม ๆ กัน เช่น webserver, scheduler, worker, postgres เครื่องมือเหล่านี้สามารถเขียนวิธีการ run ไว้ในไฟล์นี้ได้หมดเลย ตอน run จะใช้แค่ command เดียวคือ **docker compose up** ถ้าเราต้องการใช้ customized Airflow ที่ได้จาก Dockerfile ก็เขียนลงไปในไฟล์นี้ได้เลย คีย์เวิร์ดจะประมาณนี้ครับ

```diff
...
+ build: .
...

```
