Step 1: Clone Source Code
Mở terminal hoặc command prompt và chuyển đến thư mục mà bạn muốn lưu trữ dự án. Sau đó coppy lệnh bên dưới và dán vào
https://github.com/HongThinhThinh/seminar-springboot
Step 2: Setup môi trường cho dự án bằng DOCKER
Để một dự án BackEnd có thể chạy thì đầu tiên phải setup database cho dự án
Ở đây anh đang dùng database MYSQL nên sẽ chạy câu lệnh này để kéo images của MYSQL về mà không cần set up bất cứ thứ gì
docker pull mysql:latest
Sau khi pull xong các bạn có thể check đã thành công hay chưa bằng lệnh:
docker images
Step 3: Chạy image MYSQL để khởi tạo container
docker run -e MYSQL_ROOT_PASSWORD=<your_password> -p 3306:3306 -d --name mysql_container mysql:latest
- docker run: Lệnh để chạy một container mới từ image.
- -e MYSQL_ROOT_PASSWORD="your_password": Thiết lập biến môi trường MYSQL_ROOT_PASSWORD với mật khẩu cho tài khoản root của MySQL.
- -p 3306:3306: Mở cổng 3306 (mặc định của MySQL) trên máy chủ và ánh xạ nó với cổng 3306 của container.
- --name mysql_container: Đặt tên cho container là mysql_container.
Step 4: Access and Create a Database in MySQL Workbench
Sau khi chạy lệnh ở trên đồng nghĩa bạn đã set up đầy đủ môi trường MYSQL chỉ duy nhất 1 dòng lệnh và bạn hoàn toàn có thể truy cập trực tiếp vào database đó thông qua MySQL Workbench với config này:
- Connection Name : Tên connection để vào database (Đặt gì cũng được)
- Hostname localhost
- Port: 3306 (Tùy theo port đã ánh xạ khi run container ở bước trên )
- Password: Password đã config khi run container ở bước trên
Sau khi đã đăng nhập vào MySQL Workbench, bạn có thể tạo database mới với tên "your_database_name" và tạo bảng "your_table_name" với cấu trúc tương ứng với cấu trúc của bảng trong dự án của bạn.
Step 5: Push lên dockerHub để FrontEnd có thể pull xuống và sử dụng
Và để push lên docker hub thì bạn cần đăng nhập vào DockerHub
docker login
Để push được lên docker hub bạn cần build dự án mình thành 1 cái image và gắn tag cho nó
docker build -t your-image-name .
Sau khi đã build thành image thì cần gắn tag cho image đó
docker tag myapp:latest yourusername/myapp:v1.0
- docker tag: Lệnh để gán một thẻ (tag) mới cho image Docker, giúp phân biệt các phiên bản khác nhau của cùng một image.
- myapp:latest: Tên image hiện tại trên máy là myapp với tag latest, thường đại diện cho phiên bản mới nhất.
- yourusername/myapp:v1.0: Tên và tag mới cho image.
- yourusername: Tên tài khoản Docker Hub của bạn.
- myapp: Tên image lưu trên Docker Hub.
- v1.0: Tag giúp phân biệt phiên bản.
Chạy lại lệnh này để check đã build thành công hay chưa
docker images
Sau đó để đẩy nó lên docker hub bạn cần
docker push hongthinh234/myapp:v1.0
- docker push: Lệnh để đẩy (upload) một image Docker từ máy lên Docker Hub.
- yourusername/myapp:latest: Tên image và tag được đẩy lên Docker Hub.
- yourusername: Tên tài khoản Docker Hub của bạn.
- myapp: Tên của image trên Docker Hub.
- latest: Tag của phiên bản image, thường là phiên bản mới nhất.
Step 6: Đưa cho Front End File Docker Compose
version: '3'
services:
mysql_container:
image: mysql:latest
container_name: mysql_db_container # Tên của container MySQL
environment:
MYSQL_ROOT_PASSWORD: SWP@123456
ports:
- "3307:3306"
app:
image: hongthinh234/test:v1.0
container_name: springboot_container # Tên của container ứng dụng
environment:
MYSQL_URL: "jdbc:mysql://mysql_container:3306/demo_seminar"
MYSQL_USER: "root"
MYSQL_PASSWORD: "SWP@123456"
depends_on:
- mysql_container
ports:
- "8080:8080"
File Docker Compose này thiết lập hai dịch vụ: mysql_container và app.
mysql_container: Tạo container MySQL:
- image: Sử dụng
mysql:latest
. - environment: Đặt mật khẩu root là
SWP@123456
. - ports: Mở cổng
3306
của container trên cổng3307
của máy chủ.
- image: Sử dụng
app: Tạo container ứng dụng:
- image: Sử dụng
hongthinh234/test:v1.0
. - environment: Đặt các biến môi trường kết nối MySQL (URL, user, password).
- depends_on: Đảm bảo MySQL khởi chạy trước.
- ports: Mở cổng
8080
trên cả container và máy chủ.
- image: Sử dụng
Lệnh chạy docker compose
docker compose up