Concept?
เริ่มต้นด้วยการ ติดตั้ง docker desktop
https://www.docker.com/products/docker-desktop
จากนั้น สร้าง folder สำหรับ project ของเราที่จะเอา server ต่างๆมายำรวมกัน
สร้างไฟล์ docker-compose.yml ที่เป็น file หลักที่เก็บรวบรวมภาพรวมของ project ของเรา

ตัวอย่างไฟล์ที่รวบรวมเอา DB server หลายๆตัวเอาไว้ เปรียบเหมือน computer ซักเครื่องที่ลง software เหล่านี้เอาไว้แล้ว ทั้งที่จริงๆแล้วเราไม่ได้ลง
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: thada
MYSQL_PASSWORD: 123456
MYSQL_DATABASE: testdb
ports:
- "3406:3306"
volumes:
- mysql_data:/var/lib/mysql
postgres:
image: postgres:15
container_name: postgres_db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: 123456
POSTGRES_USER: thada
POSTGRES_DB: testdb
ports:
- "5433:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
informix:
image: icr.io/informix/informix-developer-database:latest
container_name: informix_db
restart: unless-stopped
environment:
LICENSE: accept
INFORMIX_PASSWORD: 123456
INFORMIXSERVER: "informix_db"
DBSERVERNAME: "informix_db"
DBSERVERALIASES: "informix_db"
ports:
- "9088:9088"
- "9089:9089"
volumes:
- informix_data:/opt/ibm/data
cap_add:
- SYS_RESOURCE
php:
build: ./php
container_name: php_fpm
restart: unless-stopped
working_dir: /var/www/html
volumes:
- ./www:/var/www/html
depends_on: # <- เพิ่มเข้ามา
- mysql
- postgres
- informix
webserver:
image: nginx:1.25 # <- แก้ไขแล้ว
container_name: nginx_web
restart: unless-stopped
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./www:/var/www/html
ports:
- "8000:80"
depends_on: # <- เพิ่มเข้ามา
- php
volumes:
mysql_data:
postgres_data:
informix_data:
