Bài viết này dùng để ghi lại các bước cơ bản để dễ dàng deploy một thử thách web Php Apache Mysql cho team nghiên cứu.

Chuẩn bị folder với cấu trúc sau:

web-php-apache-mysql
   ├── db
   │   └── mydb.sql         // File db dùng để import
   ├── src
   │   └── index.php        // Src web
   ├── Dockerfile
   └── docker-compose.yml

1. Dockerfile

FROM php:7.2-apache

RUN docker-php-ext-install mysqli pdo pdo_mysql

Giải thích thì:

  ý nghĩa
FROM Lấy image từ docker hub làm môi trường chạy web.
RUN Chạy lệnh khi build image.

2. docker-compose.yml

version: "3.9"
services:
    web-php-apache-mysql:
        container_name: web-php-apache-mysql
        build:
            context: .
            dockerfile: Dockerfile
        depends_on:
            - web-php-apache-mysql-db
        volumes:
            - ./src:/var/www/html
        ports:
            - 19064:80
    web-php-apache-mysql-db:
        container_name: web-php-apache-mysql-db
        image: mysql:5.7
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: YOURSECUREPASSWORD
            MYSQL_DATABASE: YOURDB
        volumes:
            - ./db:/docker-entrypoint-initdb.d

3. Run docker-composer

sudo docker-composer up

Test lại bằng cách truy cập localhost:19064.