Để có một môi trường test và đẩy code auto deploy thì chúng ta cần phải có một máy chủ Docker Registry,
Tại sao lại cần một Docker Registry private thì đơn giản image trên Docker Registry này sẽ chứa các thông tin nhậy cảm như ssh key nên bạn sẽ không thể dùng các bên khác được.
Đây là bài trong seri khởi tạo CICD từ con số số 0
I: Cài đặt docker và docker compose
Bắt đầu cấu hình máy chủ sẽ lưu trữ sổ đăng ký riêng. Trước tiên, bạn muốn tạo một thư mục mới sẽ lưu trữ tất cả các tệp cấu hình được yêu cầu.
1. Lệnh sau tạo một thư mục dự án mới có nhãn registryvà hai thư mục con – nginxvà auth:
mkdir -p registry/{nginx, auth}
2. Di chuyển vào registryvà tạo hai thư mục mới bên trong nginx:
cd registry/
mkdir -p nginx/{conf.d/,ssl}
chúng ta có một cây như sau:
II: Tạo Docker-Compose Script và Xác định Dịch vụ
Tiếp theo, bạn cần tạo và định cấu hình một docker-compose.yml . Tập lệnh này sẽ xác định phiên bản Docker-Compose, cũng như các dịch vụ bạn cần để thiết lập sổ đăng ký riêng.
1. Tạo một docker-compose.yml mới, trong registry bằng trình soạn thảo văn bản tùy chọn của bạn với nội dung như sau
Bây giờ chúng ta tiến hành cấu hình cho nginx, ta vào thư mục nginx/conf.d đã tạo ở trên và tạo 1 file registry.conf với nội dung như sau
cd nginx/conf.d/
thay server_name thành của bạn
Tiếp theo chúng ta cần tăng giới hạn tải lên của nginx thông qua tạo 1 file additional.conf với cấu hình như sau:
Sau khi cấu hình song chúng ta cần cấu domain về máy chủ này và cấu hình ssl cho nó
các bạn cài đặt cerbot hoặc mua ssl để làm nha cái này mình không nói là cài như thế nào nhé
chạy cerbot để lấy ssl nào
kết quả chúng ta có như vậy
các bạn lưu ý phải dùng dns để xác thực nhé vì chúng ta chưa có webserver nên xác thực http không được đâu
Sau khi cấu hình song thì chúng ta cần tạo một auth cho nginx bằng cách quay lại thư mục auth trong registry đã khởi tạo lúc đầu và chạy lệnh sau:
Nhập mật khẩu của bạn vào và thế là song. nhớ user là docker nhé
III: Tiến hành tạo root ca certificate
Tùy vào nhà cung cấp của bạn mà bạn ó được root ca certificate nhé (bạn có thể tìm thấy hàng của cerbot ở đây https://letsencrypt.org/certificates/)
Chúng ta cần tạo 1 file crt từ cái này chúng ta chạy lệnh sau:
Tạo thư mục chứa chứng chỉ:
Chuyển chứng chỉ vào đó:
Định hình lại cấu hình ssl một chút
Tiến hành khởi động lại docker
IV: chạy docker
Chúng ta vào thư mục registry và chạy docker lên nào
vậy là song. giờ chúng ta đẩy test thử 1 image lên xem sao
Bây giờ chúng ta cần tải 1 image về và tải lên test xem sao.
Thay đổi tag của image
Tiến hành login vào sv
push image
Kết quả ra nó như sau
Lưu ý phần nhập user và pass là thông tin bạn đã điền trong thư mục auth và tạo phía trên
Như vậy cấu hình đã hoàn tất.