ผู้เขียน: phunsanit

OrbStack: SQL Server on macOSOrbStack: SQL Server on macOS

การติดตั้ง SQL Server ( MSSQL ) บน OrbStack นั้นง่ายและประหยัดทรัพยากรกว่า Docker Desktop มากครับ ( โดยเฉพาะถ้าเป็นชิป M series ) เราจะต้องใช้ Image ของ Azure SQL Edge หรือ SQL Server 2025 รุ่นที่รองรับ ARM64 ครับ ใช้ Docker Compose เพราะจะช่วยให้คุณจัดการ Password และ Path ของข้อมูลได้ง่าย ( และป้องกัน Config หาย )

  1. สร้างโฟลเดอร์สำหรับโปรเจกต์
    sudo mkdir -p /Users/Shared/Portable/docker-sqlserver
    sudo chmod -R 777 /Users/Shared/Portable/docker-sqlserver
    cd /Users/Shared/Portable/docker-sqlserver
    sudo mkdir -p data
    sudo chmod -R 777 data
  2. สร้างไฟล์
    touch docker-compose.yml
  3. ใส่เนื่อหา
    services:
      sqlserver:
        container_name: docker-sqlserver
        environment:
          - ACCEPT_EULA=Y
          - MSSQL_SA_PASSWORD=4w2e36jqg6mG
          - MSSQL_PID=Developer
          # Set Thai Collation here
          - MSSQL_COLLATION=Thai_100_CI_AS
        healthcheck:
          test: ["CMD", "/opt/mssql-tools18/bin/sqlcmd", "-S", "localhost", "-U", "sa", "-P", "4w2e36jqg6mG", "-Q", "SELECT 1", "-C"]
          interval: 10s
          timeout: 3s
          retries: 10
        image: mcr.microsoft.com/mssql/server:2025-latest
        ports:
          - "1433:1433"
        restart: unless-stopped
        volumes:
          - ./data:/var/opt/mssql
    
  4. สั่งรันด้วย OrbStack
    docker compose up -d
  5. ลองเปิด /Users/Shared/Portable/docker-sqlserver/data จะเห็นว่าข้างในจะมีไฟล์ data, log, secrets อันนี้เป็น folder ที่เก็บข้อมูลและ log ของ SQL Server

OPTIONS

  • ACCEPT_EULA=Y ( ยอมรับ licence )
  • MSSQL_SA_PASSWORD=4w2e36jqg6mG ( SA password )
  • MSSQL_PID=Developer ย่อมาจาก Microsoft SQL Server Product ID ซึ่งเป็นตัวกำหนดว่า SQL Server ที่รันบน Docker จะใช้ Edition ( รุ่น ) ไหนและมีเงื่อนไขการใช้งานอย่างไร
  • MSSQL_COLLATION: Thai_100_CI_AS ( รับภาษาไทย )

วิธีการเชื่อมต่อจาก Mac

  • Server: localhost,1433
  • Username: sa
  • Password: 4w2e36jqg6mG ( ตามที่ตั้งไว้ในไฟล์ )

อ่านเพิ่มเติม