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 cho team nghiên cứu.
Chuẩn bị folder với cấu trúc sau:
web-php-apache
├── docker-compose.yml
├── Dockerfile
└── index.php
1. index.php
File này chứa source code trang web chứa lỗ hổng tự tạo.
<html>
<head>
<title>PHP APACHE</title>
</head>
<body>
<?php echo '<p>This site is vulnerable</p>'; ?>
</body>
</html>
2. Dockerfile
FROM php:7.2-apache
COPY . /var/www/html/
Giải thích thì:
ý nghĩa | |
---|---|
FROM php:7.2-apache | Lấy image từ docker hub làm môi trường chạy web. |
COPY . /var/www/html/ | Copy toàn bộ file ở thư mục hiện tại (là 3 file ở cấu trúc folder nằm đầu trang) vào thư mục mặc định của apache /var/www/html/ |
3. docker-compose.yml
version: "3.9"
services:
web-php-apache:
build: .
ports:
- "19061:80"
volumes:
- .:/var/www/html
Giải thích thì:
ý nghĩa | |
---|---|
version: “3.9” | Version của file docker-compose (cái này giữ nguyên). |
services | Chứa các container. Với mỗi service là tên của một container (tên container chọn tùy ý). |
build | Chỉ ra vị trí đường dẫn đặt Dockerfile (như trên là trỏ về thư mục hiện tại). |
ports | Kết nối port của máy host đến port của container (như trên thì 19061 là port của máy chủ, 80 là port mặc định của dịch vụ apache bcontainer). |
volumes | Gắn đường dẫn trên host machine được sử dụng trên container. |
4. Run docker-composer
sudo docker-composer up
Test lại bằng cách truy cập localhost:19061
.