Có rất nhiều hướng design một ecosystem với docker, ở đây mình sẽ sử dụng docker swarm, traefik, phpmyadmin, mysql và wordpress image để thực hiện, bạn có thể google để tìm hiểu thêm
Bước 1: Cài docker swarm và traefik revert proxy
Đầu tiên các bạn cài docker và docker swarm theo hướng dẫn tại đây. Khi đã có docker swarm chạy dưới dạng service, bạn đã sẵn sàng cho bước tiếp theo.
Bước 2: Chuẩn bị stack compose cho website
Ở phần trước mình đã tạo hai network cho docker gọi là backend và proxy, hôm nay mình sẽ sử dụng hai network này để làm việc với stack.
Chúng ta sẽ tạo stack với tên file là wordpress.yml
version: “3.3”
services:
wordpress:
image: wordpress
restart: always
container_name: wp
environment:
WORDPRESS_DB_HOST: $Địa_Chỉ_Host_MYSQL
WORDPRESS_DB_USER: $DB_USER
WORDPRESS_DB_PASSWORD: $DB_PASSWORD
WORDPRESS_DB_NAME: wordpress
volumes:
– ./wordpress/wp-include:/var/www/html/wp-include
networks:
– proxy
– backend
deploy:
labels:
– “traefik.enable=true”
– “traefik.http.routers.wordpress.rule=Host(`yourdomain.com`)”
– “traefik.http.routers.wordpress.entrypoints=web”
– “traefik.http.services.wordpress.loadbalancer.server.port=80” # it seems you always need to give traefik a port so it ‘notices’ the service
– “traefik.http.routers.wordpress-secured.rule=Host(`yourdomain.com`)”
– “traefik.http.routers.wordpress-secured.entrypoints=web-secured”
– “traefik.http.routers.wordpress-secured.tls.certresolver=mytlschallenge”
networks:
backend:
proxy:
external: true
Bước 3: Dump dữ liệu từ website của bạn
Đầu tiên các bạn vào website hiện tại dump dữ liệu mysql về dữ liệu mới và import vào mysql stack website mà mình đã hướng dẫn ở bài trước
Tiếp theo các bạn tạo database với tên là wordpress tạo user với user name và mật khẩu như trên file stack tạo ở bước 2
Bước 4: Kiểm tra và chạy stack
Sau khi hoàn thành các bước trên, các bạn vào server và chạy câu lệnh sau
docker stack deploy -c wordpress.yml wordpress
Tất cả đã xong, bây giờ chờ khoảng 2 phút và truy cập vào website như bình thường nhé bạn, đừng quên trỏ domain về server mới nhé