Thư mục/Tệp | Mô tả |
---|---|
config/ | Chứa các tệp cấu hình như php.ini |
db/ | Lưu dữ liệu cơ sở dữ liệu MySQL (thư mục trống ban đầu) |
html/ | Chứa mã nguồn WordPress (download và đổi tên thành html) |
.gitignore | Liệt kê các tệp/thư mục không đưa lên Git |
docker-compose.yml | Định nghĩa container và mối quan hệ của chúng |
Dockerfile | Định nghĩa cách xây dựng môi trường web server |
html
chứa mã nguồn WordPress để Docker có thể mount đúng.post_max_size = 128Mupload_max_filesize = 128Mserialize_precision = 6memory_limit = 128Mmax_execution_time = 300
db/
docker-compose.yml
định nghĩa 2 service chính: webapp và database.services: webapp: build: context: . dockerfile: Dockerfile container_name: your-project-name expose: - 80 ports: - 1000:80 depends_on: - database working_dir: /var/www/html volumes: - ./html:/var/www/html - ./config/php.ini:/etc/php/8.2/apache2/conf.d/99-local.ini environment: MYSQL_HOST: database MYSQL_USER: admin MYSQL_PASSWORD: admin
database: container_name: MySQL-8 restart: always image: mysql:8 volumes: - ./db:/var/lib/mysql expose: - 3306 environment: MYSQL_ROOT_PASSWORD: admin MYSQL_USER: admin MYSQL_PASSWORD: admin MYSQL_DATABASE: your-project-name
FROM ubuntu:20.04
LABEL name="Prazol Rupakheti"ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ apt-get install -y --no-install-recommends apt-utils && \ apt-get -y install wget zip unzip curl gnupg nano cron && \ apt-get install lsb-release ca-certificates apt-transport-https software-properties-common -y
# Cài Node.js, PM2, Apache và PHP 8RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ apt-get install -y nodejs && \ npm install -g npm@latest pm2 sass
RUN add-apt-repository ppa:ondrej/php -y && \ apt-get -y install php8.2 apache2 libapache2-mod-php8.2 php8.2-cli php8.2-mysql php8.2-zip php8.2-gd \ php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-imagick php8.2-intl mysql-client && \ a2enmod rewrite headers expires
# Cài phpMyAdminRUN wget -q https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-english.zip && \ unzip -q phpMyAdmin-5.2.1-english.zip && \ mv phpMyAdmin-5.2.1-english /opt/phpMyAdmin && \ rm phpMyAdmin-5.2.1-english.zip
# Cài ComposerRUN wget -q https://getcomposer.org/download/latest-stable/composer.phar && \ chmod +x composer.phar && \ mv composer.phar /usr/local/bin/composer
# Cài WP-CLIRUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \ chmod +x wp-cli.phar && \ mv wp-cli.phar /usr/local/bin/wp
# Cấu hình ApacheCOPY config/000-default.conf /etc/apache2/sites-availableCOPY config/phpmyadmin.conf /etc/apache2/conf-enabledCOPY config/99-local.ini /etc/php/8.2/apache2/conf.d/
EXPOSE 80CMD apachectl -D FOREGROUND
html/wp-config.php
cần chỉnh sửa các tham số kết nối database:define('DB_NAME', 'your-project-name');define('DB_USER', 'admin');define('DB_PASSWORD', 'admin');define('DB_HOST', 'database');
sudo apt updatesudo apt install -y docker.io docker-composesudo systemctl start dockersudo systemctl enable docker
docker-compose up -d
-d
giúp chạy trong nền, không chiếm terminal.docker ps
docker exec -it your-project-name bash
wp core version