Tuấn Sữa

Hướng dẫn cài LEMP STACK cho laravel với docker-composer

Trước khi bắt đầu với bài viết này, mặc định chúng ta đã cài docker ở trong máy rồi nha 😀

1 Các services sẽ tạo:

- ***application (image: debian):*** Mục đích chỉ để tạo volume cho các services mount to.
- ***workspace(image: kevinduy/php):*** Image cài đặt php7.2, các extensions của php7.2, nodejs, npm, yarn, parcel-bundler, gulp-cli, git, composer và các linux packages cần thiết như: nano, vim, curl ...
- ***mysql:*** Sử dụng [mysql official image](https://hub.docker.com/_/mysql/)
- ***nginx(image: kevinduy/nginx):*** Tạo và cấu hình nginx block

2 Chúng ta sẽ bắt đầu tạo laravel project với docker-compose:

version: '2'

services:
  application:
    image: debian
    volumes:
      - ./:/var/www/app
  workspace:
    image: kevinduy/php
    restart: always
    volumes_from:
      - application
    tty: true
    links:
     - mysql
  mysql:
    restart: always
    image: mysql
    volumes:
      - ./.docker/mysql:/var/lib/mysql
    ports:
      - "6691:3306"
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_USER: homestead
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: root
  nginx:
    image: kevinduy/nginx
    restart: always
    volumes_from:
      - application
    ports:
      - "80:80"
      - "443:443"
    tty: true
    command: /bin/bash -c "/serve.sh workspace laravel.test /var/www/app/public && nginx"

Có lẽ trong docker-compose.yml file chỉ khó hiểu ở dòng lệnh này thôi command: /bin/bash -c "/serve.sh workspace laravel.test /var/www/app/public && nginx"
Lệnh này sẽ chạy file server.sh trong image kevinduy/nginx với các variables được sử dụng trong file bash này và cũng là cấu hình của block nginx:
– workspace: đây là tên của php service
– laravel.test: server name của block với tên này luôn
– /var/www/app/public: đây là root path

Exit mobile version