Cara Buat Project Laravel 12 dengan SQL Server (Pakai Docker)

Ada yang nanya soal ini kemarin, jadi gue bahas di sini.
Kali ini kita bahas sesuatu yang lumayan sering ditanya juga: gimana sih bikin project Laravel 12 tapi database-nya pakai SQL Server?

Biasanya Laravel identik sama MySQL atau PostgreSQL. Tapi sebenarnya Laravel juga bisa banget jalan bareng SQL Server, asal driver PHP-nya dipasang dengan benar.

Di artikel ini kita bakal bikin environment pakai Docker, jadi setup-nya lebih rapi dan gak bikin Windows atau Linux kita berantakan.

Santai aja bro, kita jalanin step-by-step.

Di tutorial ini kita bakal:

Install PHP + SQL Server driver
Setup Docker environment
Jalanin Laravel di container
Hubungkan Laravel ke SQL Server

Kalau semuanya benar, Laravel kamu sudah bisa query database SQL Server tanpa drama.

1. Buat Dockerfile

Pertama kita buat dulu Dockerfile untuk environment PHP.

File ini nanti akan berisi:

  • PHP 8.4
  • Driver SQL Server
  • Extension PHP yang dibutuhkan Laravel
  • Composer

Buat file dengan nama Dockerfile

FROM php:8.4-fpm

# Install dependencies
RUN apt-get update && apt-get install -y \
 gnupg \
 curl \
 unixodbc-dev \
 libzip-dev \
 zip \
 unzip \
 git \
 libonig-dev \
 libicu-dev \
 && rm -rf /var/lib/apt/lists/*

# Install SQL Server Driver (fixed for Debian 11)
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg \
 && curl https://packages.microsoft.com/config/debian/11/prod.list -o /etc/apt/sources.list.d/mssql-release.list \
 && apt-get update \
 && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \
 && rm -rf /var/lib/apt/lists/*

# Install PHP extensions
RUN pecl install sqlsrv pdo_sqlsrv \
 && docker-php-ext-enable sqlsrv pdo_sqlsrv \
 && docker-php-ext-install mbstring bcmath intl zip

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www

Yang paling penting di sini adalah bagian:

pecl install sqlsrv pdo_sqlsrv

Itu yang bikin PHP bisa connect ke SQL Server. Tanpa driver ini, PHP sebenarnya sama sekali gak ngerti cara komunikasi sama SQL Server, meskipun secara teori Laravel udah support banyak jenis database lewat abstraksi query builder-nya. Driver sqlsrv dan pdo_sqlsrv ini yang jadi jembatan komunikasi level rendah antara PHP dan SQL Server, jadi wajib banget ada sebelum lanjut ke step berikutnya.

2. Buat File docker-compose.yml

Sekarang kita bikin docker compose supaya container bisa langsung jalan.

Buat file dengan nama docker-compose.ym.:

Isi dengan konfigurasi berikut:

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: laravel_app
    restart: unless-stopped
    working_dir: /var/www
    volumes:
      - "D:/PROJECT/api-laravel:/var/www"
    ports:
      - "8000:8000"
    command: php artisan serve --host=0.0.0.0 --port=8000

Penjelasan singkat:

  • volumes folder project Laravel di komputer kamu
  • port 8000 akses Laravel dari browser
  • command artisan serve menjalankan Laravel server

Nanti Laravel bisa diakses lewat:

http://localhost:8000

3. Download Laravel 12

Sekarang download Laravel.

Cara paling gampang:

  1. Download Laravel dari Github atau via Composer
  2. Extract project Laravel
  3. Simpan di folder yang sama dengan Dockerfile dan docker-compose.yml

Contoh struktur folder:

project-laravel
│
├── Dockerfile
├── docker-compose.yml
├── app
├── bootstrap
├── config
├── database
├── routes
└── vendor

Kalau sudah rapi seperti ini, kita bisa lanjut build Docker.

4. Build dan Jalankan Docker

Sekarang jalankan perintah berikut di terminal:

docker compose up --build

Docker akan melakukan beberapa hal:

  • Build image PHP
  • Install driver SQL Server
  • Install extension PHP
  • Menjalankan container Laravel

Tunggu sampai prosesnya selesai.

Kalau sukses, Laravel bisa diakses di:

http://localhost:8000

Mantap, berarti Laravel kamu sudah jalan di Docker.

5. Konfigurasi Database SQL Server

Sekarang kita hubungkan Laravel ke SQL Server.

Buka file:

config/database.php

Tambahkan atau pastikan konfigurasi sqlsrv seperti ini:

'sqlsrv' => [
  'driver' => 'sqlsrv',
  'url' => env('DB_URL'),
  'host' => env('DB_HOST', 'localhost'),
  'port' => env('DB_PORT', '1433'),
  'database' => env('DB_DATABASE', 'laravel'),
  'username' => env('DB_USERNAME', 'root'),
  'password' => env('DB_PASSWORD', ''),
  'charset' => env('DB_CHARSET', 'utf8'),
  'prefix' => '',
  'prefix_indexes' => true,
  // 'encrypt' => env('DB_ENCRYPT', 'yes'),
  'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
 ],

6. Edit File .env

Sekarang buka file .env.

Ubah konfigurasi database jadi seperti ini:

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=laravel
DB_USERNAME=sa
DB_PASSWORD=password

7. Test Koneksi Database

Untuk memastikan Laravel berhasil connect ke SQL Server, jalankan:

php artisan migrate

Kalau tidak ada error, berarti koneksi database sudah berhasil.

Laravel sekarang sudah bisa:

Query SQL Server
Migration
Eloquent ORM
API development

Kendala yang Sering Muncul

  • Error “could not find driver” pas migrate
    Biasanya driver sqlsrv/pdo_sqlsrv belum keinstall sukses di image. Cek lagi log pas docker compose up --build, pastikan gak ada error di step install driver.
  • Connection timeout ke SQL Server
    Kalau SQL Server-nya jalan di luar container (misalnya di Windows host), pastikan DB_HOST di .env diisi host.docker.internal, bukan 127.0.0.1, karena 127.0.0.1 di dalam container itu ngarah ke container itu sendiri, bukan ke host.
  • Login failed for user
    Cek ulang username dan password SQL Server di .env, dan pastikan SQL Server Authentication mode-nya udah diaktifkan (bukan cuma Windows Authentication), soalnya default-nya kadang cuma Windows Authentication doang.
  • SSL/TLS certificate error
    Kalau muncul error terkait certificate, coba set DB_TRUST_SERVER_CERTIFICATE=true di .env buat development lokal (jangan dipakai di production tanpa certificate yang valid).

Penutup

Nah bro, sekarang kamu sudah tahu cara bikin project Laravel 12 dengan database SQL Server menggunakan Docker.

Dengan setup seperti ini:

Environment lebih rapi
Install driver SQL Server jadi gampang
Laravel bisa langsung jalan di container

Metode ini juga enak banget buat development team karena semua orang bisa pakai environment yang sama tanpa ribet install manual.

Semoga tutorial santai ini bisa bantu kamu yang lagi setup Laravel + SQL Server. Happy coding bro.

Jundi Husni Mubaraq

Jundi Husni Mubaraq

Saya seorang software engineer yang sejak awal 2026 megang penuh (sendirian) tanggung jawab infrastruktur server di tempat saya kerja: deploy dan maintain server Linux Ubuntu on-premises, bangun keamanan berlapis pakai CrowdSec dan Cloudflare, kelola job scheduling dan monitoring pakai Cronicle, deploy aplikasi containerized pakai Docker, sampai ngurusin mail server korporat dari nol. Sebelumnya saya 3+ tahun jadi Software Engineer/Fullstack Developer di beberapa perusahaan, termasuk proyek skala internasional (EUDR compliance system buat Lindt & Sprungli) dan sistem rumah sakit (SIMRS, rekam medis elektronik, integrasi BPJS Kesehatan) di RS PKU Muhammadiyah Surakarta. jundi.hm ini tempat saya dokumentasiin apa yang beneran saya kerjain dan pelajarin di lapangan, bukan sekadar riset teori, S.Kom dari Universitas Duta Bangsa Surakarta jadi bekal awal, tapi yang nulis di sini adalah pengalaman langsung ngelola server production sehari-hari. Selengkapnya: https://iam.jundi.hm

Lihat Juga Nih

Selanjutnya Nih

Kasih Komentar

Email kamu gak bakal ditampilin ke publik. Kalau ada tanda ini artinya wajib diisi ya *

Rekomendasi.

Lagi Viral.