VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile
Hướng dẫn chạy dự án PHP trên môi trường docker

Hướng dẫn chạy dự án PHP trên môi trường docker

Docker là công cụ giúp các nhà phát triển ứng dụng chạy môi trường lập trình một cách nhanh chóng và tiện dụng, sử dụng docker chúng ta có thể code các dự án yêu cầu các phiên bản PHP khác nhau. Docker có cộng đồng người dùng rộng lớn trên toàn thế giới, docker cũng có docker hub giúp chúng ta có thể build sẵn các gói môi trường để tiện sử dụng sau này hoặc chia sẻ cho nhiều người dùng khác. Trong bài viết này tôi sẽ hướng dẫn cụ thể cách áp dụng docker và docker compose vào dự án thực tế luôn. Về các khái niệm docker và docker compose cơ bản bạn có thể đọc các bài viết chia sẻ trên mạng.

I. TẠO CÁC FILE CẤU HÌNH CHO DOCKER

Tại thư mục root của dự án chúng ta tạo thư mục docker (đặt tên gì cũng được tùy bạn, nhưng đặt tên gì thì nhớ lấy và thay vào các đường dẫn cho đúng)

Hướng dẫn chạy dự án PHP trên môi trường docker

+ Trong thư mục config bạn tạo file app.conf. Nội dung file này như sau

Hướng dẫn chạy dự án PHP trên môi trường docker

+ Trong thu mục php-fpm tạo file php-fpm.log. File này không có nội dung gì cả.

Sau khi tạo file config app,conf thì bạn nhớ cái domain bạn nhập để thêm vào trong file host nhé. Bạn mở file host của máy thêm cái domain đó vào như sau

Hướng dẫn chạy dự án PHP trên môi trường docker

Chúng ta mở file Dockerfile và nhập nội dung theo môi trường chúng ta mong muốn. ở đây tôi nhập như sau

Hướng dẫn chạy dự án PHP trên môi trường docker

Ở mục FROM chính là tên image, chúng ta lấy tên này trên docker hub. Bạn vào trang https://hub.docker.com/ đăng ký tài khoản và đăng nhập vào. Sau khi đăng nhập vào thì bạn gõ vào thanh tìm kiếm để tìm các image phù hợp mà bạn đang cần. Ví dụ tôi tìm như sau 

Hướng dẫn chạy dự án PHP trên môi trường docker

Sau đó chúng ta copy dòng title in đậm. đó chính là tên của image để chúng ta nhập vào mục FROM. Nếu muốn chạy phiên bản cũ hơn của image này thì chúng ta bấm vào image đó và vào mục tag sau đó copy version thêm vào sau tên của image, ngăn cách bởi dấu hai chấm.

drud/nginx-php56:v0.29.1

 

 

Tiếp theo ở thư mục root của dự án chúng ta tạo file docker-compose.yml và nhập nội dung như sau (Lưu ý rằng phải đặt tên file như thế này, không được thay đổi)

 

version: "3"
networks:
  vanhiep_network:
    external: true
services:
  workspace:
    build:
      context: .
      dockerfile: ./docker/Dockerfile
    container_name: vanhiep_framework
    working_dir: /var/www/html
    ports:
      - "8089:8080"
    volumes:
        - .:/var/www/html
        - ./docker/nginx_log:/var/log/nginx
        - ./docker/php-fpm/php-fpm.log:/var/log/php-fpm.log
        - ./docker/config/app.conf:/etc/nginx/sites-enabled/app.conf
    links: 
        - mysql
  vanhiep_phpmyadmin:
    image: phpmyadmin
    container_name: phpmyadmin
    ports:
        - "8080:80"
    environment:
        PMA_HOST : mysql
        UPLOAD_LIMIT: 3000M
    restart: always
  mysql:
    image: mariadb:10.5.8
    container_name: vanhiep_mysql
    ports:
      - "3308:3306"
    volumes:
      - ./docker/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password  

 

Giải thích : 

+ version là cái version của docker compose, bạn cứ để là 3 như trên.

+ Mục network bạn có thể thay cái tên vanhiep_network thành cái tên của bạn

+ Mục workspace bạn chú ý phần port chỗ 8089 bạn đặt thế nào thì sau sẽ truy cập bằng port đấy trên url, còn 8080 bạn có thể giữ nguyên vậy hoặc đổi thành 80

+ Mục vanhiep_phpmyadmin, bạn có thể để nguyên như vậy hoặc nếu muốn thay đổi phiên bản thì lấy tên image trên docker hub về thay vào mục image

+ Mục mysql bạn cũng có thể copy nguyên như vậy, có thể đổi lại tên nếu bạn muốn. chỗ mục port thì phía tay phải là port của máy ảo docker, còn phía tay trái là port trên máy host của chúng ta 

 

II. CHẠY DOCKER COMPOSER

 

Sau khi đã có hết các file cấu hình thì ở thư mục root của dự án chúng ta chạy lệnh sau

docker-compose up -d --build

Sau khi chạy xong thì chúng ta sẽ có các container như chúng ta cấu hình trong file docker-compose. Nếu quá trình chạy thành công thì chúng ta sẽ thấy thông báo như sau

 

Hướng dẫn chạy dự án PHP trên môi trường docker

Để liệt kê các container mà chúng ta đã build thì chúng ta chạy lệnh sau

docker ps

Hướng dẫn chạy dự án PHP trên môi trường docker

Bây giờ chúng ta truy cập vào dự án bằng tên miền vanhiep.local và cổng 8089

 

Hướng dẫn chạy dự án PHP trên môi trường docker

 

Chúng ta truy cập database bằng cổng 8080

Hướng dẫn chạy dự án PHP trên môi trường docker

 

III. TỔNG KÊT 

Trên đây tôi đã hướng dẫn chi tiết chạy dự án bằng docker. bạn có thể chạy dự án trên docker cho tất cả các ngôn ngữ chứ không phải riêng gì php. các dự án chạy môi trường khác ví dụ như node thì chúng ta lại tìm image node để build container. Sau khi chạy dự án thành công trên docker thì chúng ta cứ mở source để viết code bình thường, docker compose sẽ tự động mout vào container cho chúng ta. Khi deploy dự án lên server thì chúng ta có thể cài docker trên server và đẩy code lên sau đó chạy lệnh docker-compose up -d như bình thường. hoặc cũng có thể tự cài môi trường cho phù hợp với dự án để tránh tốn dung lượng server.Chúc bạn thành công.

 

  • Lee Dong Chul TV Sáo Trúc

    Bài viết hữu ích

  • Lee Dong Chul TV Sáo Trúc

    Hãy để lại ý kiến đóng góp