Bản Docker
🇻🇳 (vi)
![]()
Hướng dẫn này được viết cho Ubuntu 20.04 LTS (Focal Fossa)
Yêu cầu:
- RAM 8GB trở lên
- CPU 6 Core trở lên
- Dung lượng 2GB trở lên
Chuẩn bị:
- Quyền truy cập vào source code Gcalls Plus Webphone bản docker của Gcalls và source code Gcalls Plus Webphone của Gcalls
- nvm
- git
- node
- npm
- docker-compose
- docker
- curl, wget
I. Cài đặt phần mềm và tool cần thiết (bỏ qua bước này nếu đã cài mọi thứ trong danh sách chuẩn bị ở bước trên)
Thao tác qua Terminal của Ubuntu Trước tiên
```
sudo apt update
```
1. git
sudo apt install git-all
- Kiểm tra git:
git --version
2. curl và wget
sudo apt update
- curl
sudo apt install curl - wget
sudo apt install software-properties-common apt-transport-https wget
3. nvm
Cài nvm bằng curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Hoặc cài nvm bằng wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Thêm vào bashrc
source ~/.bashrc
- Kiểm tra nvm:
nvm -v
4. node và npm
Cài đặt node v16
nvm install v16
- Kiểm tra node và npm:
node -v
npm -v
5. Docker
- Cập nhật package:
sudo apt-get update
sudo apt-get install - Thêm keyring và sourcelist:
sudo mkdir -p /etc/apt/keyrings
cd /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update - Cài đặt Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin - Kiểm tra Docker:
docker -v
6. docker-compose
- Cài đặt dependency cần thiết (curl):
sudo apt install curl - Cài đặt docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - Cấp quyền executable cho docker-compose:
sudo chmod +x /usr/local/bin/docker-compose - Kiểm tra docker-compose:
docker-compose -v
II. Cài đặt source code
Có thể thao tác qua 1 trong các hướng sau:
- Terminal
- Giao diện và Terminal
- Giao diện, Terminal và VS Code Terminal
Hướng dẫn dưới đây sẽ thao tác qua Ubuntu Terminal và VS Code Terminal
Mở terminal (Crl+Alt+T)
1. Chọn 1 thư mục để chứa source code (ví dụ: source_code)
Nếu chưa có thì tạo
mkdir source_code
2. Mở thư mục:
- Truy cập thư mục đó:
cd source_code
3. Tải repo về:
- Khởi tạo:
git init
git clone https://gitlab.com/gcalls-single-node/devops-prod - Truy cập thư mục chứa source code
devops_prodcd devops_prod - Cập nhật thông tin và kiểm tra branch:
git fetch
git branch - Chuyển branch:
git checkout release - Kiểm tra branch:
git branch
4. Khởi tạo docker:
Thoát khỏi thư mục devops-prod
cd ..
Trước tiên, đăng nhập vào GitlLab qua docker:
docker login https://registry.gitlab.com/gcalls-single-node
docker login https://registry.gitlab.com/gcalls-opensource
Nhập username và password cho tài khoản GitLab.
4.1 Keycloak (Quản lý đăng nhập/đăng ký tài khoản) và Logstash (Quản lý logging)
4.1.1 Tải repo về:
- Tải repo về:
git clone https://gitlab.com/gcalls-opensource/gcalls-community-version - Truy cập thư mục
gcalls-community-versioncd gcalls-community-version - Cập nhật thông tin:
git fetch - Chuyển sang branch Development:
git checkout Development - Kiểm tra branch:
git branch - Chuyển sang branch mới (tùy chọn, sẽ kế thừa commit của branch trước đó):
git checkout -b <branch của bạn>
4.1.2 khởi tạo docker:
- Tại root
/của thư mực, truy cậplog-service/dockercd log-service/docker - Khởi tạo docker cho Logstash
docker-compose up -d logstash - Tại root
/của thư mục, truy cậpiam-servicecd iam-service - Khởi tạo docker cho Keycloak và Postgres
docker-compose up -dUsername Password Postgres keycloak keycloak@2022 Keycloak admin gadmin@2022 - Kiểm tra Keycloak, Postgres và Logstash:Nếu thấy dòng chữ
docker logs -f keycloak --tail 1000Http management interface listening on http://127.0.0.1:9990/managementhoặcAdmin console listening on http://127.0.0.1:9990ở dưới cùng nghĩa là chạy thành công. Bấm Crl + CNếu vào được nghĩa là thành công. Thoát ra khỏi containerdocker exec -it iam-service_postgres psql -U keycloakexitLogstash đã được khởi tạo thành công nếu thông điệp "Successfully started Logstash API endpoint {:port=>9600}" hiện radocker logs logstash -f
4.1.3 Nhập dữ liệu vào Postgres cho Keycloak (Tùy chọn):
Chỉ thao tác qua giao diện và Ubuntu Terminal: Lưu ý dữ liệu của database keycloak trong Postgres phải hoàn toàn trống mới có thể nhập đầy đủ được.
- Tạm dừng keycloak lại:
docker stop keycloak - Truy cập vào docker của Postgres:
docker exec -it iam-service_postgres_1 sh - Tạo 1 user mới:
createuser -U keycloak --interactive - Điền tên và chọn y cho superuser:
Enter name of role to add: postgres
Shall the new role be a superuser? (y/n) y - Truy cập vào database mới bằng user mới:
psql -U postgres - Xóa database keycloak
drop database keycloak - Tạo lại database keycloak
create database keycloak - Thoát ra khỏi psql và docker
exit\q - Tạo 1 thư mục mới và truy cập vào nó:
mkdir postgres
cd postgres - Tải dữ liệu về
wget -O dumpfile "https://gstatics.sgp1.digitaloceanspaces.com/contributer-setup-data/postgresBackup" - Nhập vào Postgres
cat dumpfile | docker exec -i iam-service_postgres_1 psql -U keycloak
4.2 Database cho Gcalls Plus Webphone:
4.2.1 Cài đặt database:
- Thoát khỏi thư mục
gcalls-community-versioncd .. - Truy cập
devops-prodTại root```
cd devops-prod
```/của thư mụcdevops-prod, chạy các câu lệnh sau - MongoDB:Tài khoản mặc định: | username | password | |----------|-------------| | gadmin | Gcalls2021devops |
docker-compose -f dc-mongo0.yml up -d - CouchDB:Tài khoản mặc định: | username | password | |----------|-------------| | gadmin | GqMKXwfP73Kw7h6y |
docker-compose -f dc-couchdb.yml up -d - Redis:Kiểm tra Database:
```
docker-compose -f dc-redis.yml up -d
``` - MongoDB:Nếu vào được nghĩa là thành công. Thoát ra khỏi container
docker exec -it mongo0 mongo -u admin -p Gcalls2021devopsexit - Couchdb:Nếu vào được nghĩa là thành công. Thoát ra khỏi container
docker exec -it iam-service_postgres_1 psql -U keycloakexit - Redis:Nếu vào được nghĩa là thành công. Thoát ra khỏi container
docker exec -it redis redis-cliexit
4.2.2 Nhập dữ liệu vào MongoDB cho Gcalls Plus Webphone (Tùy chọn)
Chỉ thao tác qua giao diện và Ubuntu Terminal:
- Tạo 1 thư mục mới (ví dụ
gcalls-example-db):mkdir gcalls-example-db - Truy cập thư mục:
cd gcalls-example-db - Tải dữ liệu db về:
wget -O gcalls-example-db.zip --no-check-certificate "https://gstatics.sgp1.digitaloceanspaces.com/contributor-setup-data/myMongoDB.zip" - Kiểm tra file tải về:
ls - Unzip file:
unzip gcalls-example-db.zip- Nếu chưa có
unzipthì cài đặtunzipsudo apt install unzip
- Nếu chưa có
- Copy file vào container:
docker cp GcallsCVDB2 mongo0:/dump - Nhập dữ liệu vào MongoDB:
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db <database name> /dump/<đường dẫn tới thư mục chứa db cần nhập>docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/access-service
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/customer-service
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/integration-manager
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/record-service
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/third-party-service
docker exec -i mongo0 /usr/bin/mongorestore --username admin --password Gcalls2021devops --db access-service /dump/user-service
4.3 Gcalls Plus Webphone:
Tại root / của thư mục devops-prod, chạy các câu lệnh sau
- Backend:
docker-compose -f dc-user.yml up -d
docker-compose -f dc-customerService.yml up -d
docker-compose -f dc-3rd.yml up -d
docker-compose -f dc-record.yml up -d
docker-compose -f dc-filter.yml up -d - Middle:
docker-compose -f dc-access.yml up -d
docker-compose -f dc-pbxlog.yml up -d
docker-compose -f dc-mobile.yml up -d
docker-compose -f dc-api.yml up -d
docker-compose -f dc-integration.yml up -d - Frontend:
docker-compose -f dc-webphone.yml up -d
docker-compose -f dc-customerManagement.yml up -d
5. Kiểm tra docker:
- Xem thông tin docker đang chạy:
docker ps - Xem tình trạng của từng docker (chạy từng câu lệnh):
docker logs <tên của docker container xem trong docker ps>docker logs user-service
docker logs customer-service
docker logs third-party-service
docker logs record-service
docker logs filter-service
docker logs access-service
docker logs pbxlog-service
docker logs mobile-service
docker logs api-management
docker logs integration-manager
docker logs webphone-service
docker logs customer-management
III. Sử dụng Gcalls Plus Webphone
- Truy cập vào localhost:4004 (frontend của Gcalls Plus Webphone) để sử dụng Gcalls Plus Webphone
- Truy cập localhost:8080 (frontend của Keycloak) để quản lý tài khoản/ credential ở các callcenter | username | password | |----------|-------------| | admin | gadmin@2022 |
1. Nếu chưa nhập dữ liệu vào MongoDB và Postgres
- Đăng ký 1 callcenter mới
- Kiểm tra mail và bấm confirm
- Đặt mật khẩu cho tài khoản
- Đăng nhập vào callcenter với tài khoản vừa tạo Tham khảo Video hướng dẫn sử dụng Gcalls Plus Webphone (🇻🇳 - Tiếng Việt - Âm thanh)
2. Nếu đã nhập dữ liệu vào database
- Dùng tài khoản dưới để đăng nhập: | email | password | callcenter | |----------|-------------|-------------| |gcalls.test@gmail.com| 12345678 | gcallstest |