Bước 1:

Tạo cấu trúc folder cho dự án mới

mkdir myproject # Folder gốc của dự án
mkdir myproject/dbdata # Lưu dữ liệu của database
mkdir myproject/configs # Lưu cấu hình nginx
cd myproject

Donwload Laravel

curl -L https://github.com/laravel/laravel/archive/v5.5.0.tar.gz | tar xz
mv laravel-5.5.0 src # Source code

Install dependencies

docker run --rm -v $(pwd)/src:/app composer/composer install

Bước 2:

Tạo file cấu hình docker compose

vim docker-compose.yml

Với nội dung:

version: '2'
services:
  # The Database
  db:
    restart: always
    image: postgres
    environment:
        - POSTGRES_USER=docker
        - POSTGRES_PASSWORD=docker
        - POSTGRES_DB=docker
    ports:
        - "5432:5432"
    volumes:
        - ./dbdata:/var/lib/postgresql/data/

  # The Application
  app:
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ./src/:/var/www
    environment:
      - "DB_CONNECTION=pgsql"
      - "DB_PORT=5432"
      - "DB_HOST=db"

  # The Web Server
  server:
    build:
      context: ./
      dockerfile: server.dockerfile
    working_dir: /var/www
    volumes_from:
      - app
    ports:
      - 8080:80

File cấu hình này phụ thuộc vào 2 cấu hình của appserverapp.dockerfileserver.dockerfile

vim app.dockerfile

Với nội dung:

FROM php:7.1.8-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev libpq-dev \
    libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
    && docker-php-ext-enable imagick \
    && docker-php-ext-install mcrypt pdo pdo_pgsql pgsql
vim server.dockerfile

Với nội dung

FROM nginx:1.12.1

ADD configs/nginx.conf /etc/nginx/conf.d/default.conf

Bước 3:

Chạy phát đầu tiên để docker tiến hành cài đặt môi trường

docker-compose up

Init Laravel

docker-compose exec app php artisan key:generate
docker-compose exec app php artisan optimize

Ghi chú: Để tắt docker instance ta cần cd đến folder chứa file docker-compose.json của nó và chạy: docker-compose down

Kiểm tra trên trình duyệt với địa chỉ: http://localhost:8080

DONE.