Docker ứng dụng PHP, Nginx: Phần 4 – build Image với docker-compose

docker-compose là 1 file có chức năng build các Image thàn Container, sau đó kết nối các Container lại với nhau qua dải mạng. Ở bài viết này, ta sẽ chỉ viết file docker-compose để chạy ứng dụng PHP, Nginx mà thôi. 1. docker-compose version: '3.8' services: #PHP Service web: privileged: true build: context: ./docker

docker-compose là 1 file có chức năng build các Image thàn Container, sau đó kết nối các Container lại với nhau qua dải mạng.
Ở bài viết này, ta sẽ chỉ viết file docker-compose để chạy ứng dụng PHP, Nginx mà thôi.

1. docker-compose

version: '3.8'
services:

  #PHP Service
  web:
    privileged: true
    build: 
        context: ./docker
    image: strawberry:v1
    container_name: strawberry
    restart: unless-stopped
    ports: 
        - "80:80"
        - "443:443"

Giải thích:

  1. tên của service gồm PHP, Nginx của ta sẽ có tên là web
  2. khi build nó sẽ tìm Image là strawberry:v1 để tạo Container, nếu mà chưa có Image này nó sẽ lấy Dockerfile ở thư mục context: ./docker để tạo Image trước, rồi sau đó mới run Image.
  3. restart: unless-stopped container sẽ chỉ dừng lại khi ta cố tình down nó thôi, nếu có lỗi gì khiến container dừng lại khác nó sẽ tự động restart.
  4. ports mapping port từ môi trường gốc vào container, ở đây ta map port 80 để sử dụng Nginx.
  5. privileged: true cấp quyền cho thằng root của container có quyền thao tác trên cả máy host. (minh hỏa ở ảnh dưới)

2. config virtual host và build Container

  • truy cập đường dẫn C:WindowsSystem32driversetc.
  • edit file host với quyền admin.
  • thêm dòng sau để tạo virtual host:
    127.0.0.1 strawberry.local www.strawberry.local tương ứng với file config của Nginx.
  • chạy lệnh docker-compose up -d
  • mở browser và truy cập đường dẫn: http://www.strawberry.local/info.php

Kết quả:

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ