Ứng dụng Golang để chạy như một Docker Container

Ung Dung Golang De Chay Nhu Mot Docker Container



Trong hướng dẫn này, chúng ta sẽ tìm hiểu những kiến ​​thức cơ bản về việc chứa container bằng cách thiết lập ứng dụng Golang để chạy như một Docker container. Chúng ta sẽ tìm hiểu cách làm việc với Dockerfile để định cấu hình tất cả các yêu cầu cho ứng dụng của chúng ta.

Go là ngôn ngữ lập trình mã nguồn mở, được gõ tĩnh và được biên dịch, nổi tiếng với khả năng hỗ trợ phát triển một phần mềm đơn giản, đáng tin cậy và hiệu quả cao. Nó tìm thấy tiện ích trong việc tạo ra các ứng dụng đa dạng bao gồm ứng dụng web, giải pháp gốc đám mây, giao diện dòng lệnh (CLI) và điều thú vị là ngay cả bản thân Docker cũng được tạo bằng Go.

Trong trường hợp của chúng tôi, chúng tôi xây dựng một máy chủ HTTP đơn giản trong Go, cho phép chúng tôi trình bày cách xây dựng và Dockerize ứng dụng theo các bước đơn giản.







Yêu cầu:

Để làm theo hướng dẫn này, bạn cần có các công cụ sau:



  1. Đã cài đặt trình biên dịch Go (yêu cầu phiên bản 1.21 trở lên)
  2. Chạy Docker Engine trên máy chủ của bạn
  3. Một IDE hoặc trình soạn thảo văn bản để chỉnh sửa ứng dụng Go. Chúng tôi khuyên bạn nên sử dụng Visual Studio hoặc Vim
  4. Trình thông dịch dòng lệnh như Bash, ZSH, PowerShell, v.v.

Khi đã đáp ứng các yêu cầu nhất định, chúng ta hãy tiến hành và tìm hiểu cách xây dựng ứng dụng.



Xây dựng ứng dụng

Bước tiếp theo là xây dựng ứng dụng của chúng tôi. Trong trường hợp của chúng tôi, chúng tôi xây dựng một máy chủ HTTP đơn giản phản hồi bằng một thông báo đơn giản.





Bắt đầu bằng cách tạo một thư mục để lưu trữ dự án Go. Bạn có thể cung cấp bất kỳ tên phù hợp.

$ mkdir go_server

Điều hướng vào thư mục và tạo một tệp mới để lưu trữ mã nguồn. Trong trường hợp của chúng tôi, chúng tôi gọi tệp “main.go” biểu thị rằng tệp đó là mã nguồn Go.



$ chạm main.go

Cuối cùng, chỉnh sửa tệp và thêm mã nguồn vào ứng dụng như minh họa sau:

gói chính

nhập khẩu (
'fmt'
'mạng/http'
)

chức năng chính ( ) {
// xử lý các yêu cầu đến
http.HandleFunc ( '/' , vui vẻ ( TRONG http.ResponseWriter, r * http.Yêu cầu ) {
// Viết phản hồi cho khách hàng
fmt.Fprintf ( TRONG , 'Từ Docker (:' )
} )

// Khởi động máy chủ HTTP trên cổng 8080
fmt.Println ( 'Máy chủ đang chạy trên: 8080' )
http.ListenAndServe ( ':8080' , không )
}

Ứng dụng trước tạo một máy chủ HTTP cơ bản liên kết với cổng 8080. Máy chủ phản hồi bằng một thông báo cơ bản như được xác định trước đó.

Kiểm tra ứng dụng

Trước khi chúng tôi neo ứng dụng, hãy đảm bảo rằng ứng dụng đang hoạt động bình thường. Chạy lệnh sau:

$ chạy main.go đi

Lệnh trước khởi động ứng dụng và trả về thông báo như sau:

Máy chủ đang chạy trên: 8080

Tiếp theo, để kiểm tra máy chủ HTTP, bạn có thể chạy lệnh “curl” như sau:

$ cuộn tròn http: // máy chủ cục bộ: 8080 /

Lệnh trước sẽ trả về thông báo như sau:

Từ Docker ( : %

Bây giờ chúng ta có thể tiến hành và neo ứng dụng trước đó như được xác định trong các bước tiếp theo.

Chứa ứng dụng

Các bước tiếp theo là thảo luận cách xây dựng vùng chứa cho ứng dụng. Chúng tôi bắt đầu bằng cách tạo Dockerfile trong thư mục dự án.

$ đĩa CD go_server

Tạo một tệp có tên Dockerfile không có bất kỳ phần mở rộng nào và chỉnh sửa tệp bằng trình soạn thảo văn bản. Tệp này cho phép chúng tôi xác định tất cả các yêu cầu cho ứng dụng của mình như sau:

$ chạm Dockerfile
$ bởi vì Dockerfile

Thêm cấu hình như sau:

TỪ golang: 1,21

WORKDIR / ứng dụng

SAO CHÉP . .

CHẠY đi xây dựng main.go -O chủ yếu .

PHƠI RA 8080

CMD [ './chủ yếu' ]

Trong Dockerfile trước, chúng tôi xác định các hoạt động trước đó cho ứng dụng.

  • Đặt hình ảnh cơ sở thành hình ảnh Golang phiên bản 1.21 chính thức.
  • Định cấu hình thư mục làm việc bên trong vùng chứa thành “/app”.
  • Chúng tôi sao chép toàn bộ thư mục dự án vào vùng chứa.
  • Xây dựng ứng dụng Go bên trong container.
  • Hiển thị cổng 8080 để cho phép lưu lượng HTTP đến.
  • Đặt lệnh để chạy ứng dụng Go.

Xây dựng hình ảnh Docker

Để xây dựng image cho ứng dụng, hãy mở terminal và điều hướng đến thư mục dự án. Tiếp theo, chạy lệnh sau để xây dựng hình ảnh:

$ sudo docker xây dựng -t go_server_docker .

Thay thế go_server_docker bằng tên mà bạn muốn gán cho hình ảnh ứng dụng.

Sau khi xây dựng thành công hình ảnh Docker, bạn có thể chạy vùng chứa dựa trên hình ảnh đó bằng lệnh sau:

$ docker chạy -P 8080 : 8080 go_server_docker

Lệnh trước đó sẽ ánh xạ cổng 8080 từ máy chủ sang cổng 8080 bên trong vùng chứa.

Để kiểm tra vùng chứa, hãy chạy lệnh sau:

$ cuộn tròn http: // máy chủ cục bộ: 8080

Điều này sẽ in thông báo được xác định trong ứng dụng.

Phần kết luận

Trong hướng dẫn này, chúng ta đã học cách tạo một ứng dụng Go cơ bản. Chúng tôi cũng đã học cách chứa ứng dụng bằng cách xác định các yêu cầu trong Dockerfile, xây dựng hình ảnh từ vùng chứa và chạy vùng chứa từ hình ảnh.