I. Lời mở đầu Show Tình hình là thời gian vừa rồi mình có code một trang web bán hàng. Sau khi code xong mình muốn sử dụng nó trên website mà vẫn chưa biết làm thế nào. Vậy là mình có đi tìm hiểu và được biết là phải deploy code đó lên hosting hoặc server thì mới sử dụng được. Vậy là mình quyết định thuê 1 server của Linux có giá là 200$/year. Sau vài ngày lang thang trên viblo cuối cùng mình cũng tìm hiểu được một số cách deploy code của mình lên server này. Mình có đọc được một bài có tâm và rất là hay: Cái nhìn tổng quan về một dự án web Trong bài biết gợi ý sử dụng một số các cách deploy sau:
Nếu các bạn từng theo dõi các bài viết viblo của tác giả trên, chắc hẳn các bạn có thấy bạn đó có rất nhiều các bài viết về Docker trong series Tìm hiểu về Docker. Mình đã tìm hiểu theo series và đã deploy web bán hàng của mình bằng docker thành công. Trong bài viết này thì mình sẽ đi sâu vào phần ứng dụng docker vào dự án. Cụ thể là deploy Node.js app đơn giản bằng việc sử dụng Docker và Gitlab Registry. II. Nội dung chínhHãy đảm bảo rằng khi đọc đến đây các bạn đã có kiến thức cơ bản về docker: Docker Container, Docker Image, Docker Registry... và một số docker CLI: build, push, pull, login, ... Source code: https://github.com/vanquynguyen/node-server https://github.com/vanquynguyen/node-server 1. Tạo group, repository cho dự án trên gitlab
Sau khi tạo xong group như trên, bạn hãy tạo các project liên quan. Ở bài viết này mình chỉ hướng dẫn deploy node.js app. Còn các project khác mình sẽ chia sẻ ở các bài viết sắp tới. Để có thể thao tác lên registry gitlab bạn click vào project và chọn Container Registry như bên dưới. Đừng quên vào tạo một token để máy có bạn có thể login vào gitlab registry để sử dụng các docker CLI. 2. Tạo Node.js app và viết DockerfileTạo Node.js app
Và đây là nội dung của file index.js
Tạo file .env
Các bạn chạy thử app sẽ thấy: Một dự án sẽ gồm rất nhiều yếu tố ở đây thì mình không thể show hết code ra được. Nên đây là một app basic và tượng trưng. Viết DockerfileBạn tạo một folder có tên là docker
Tạo Dockerfile
Và trong Dockerfile:
Thao tác đến Registry GitlabĐể deploy bạn chạy lần lượt command bên dưới:
0Kiểm tra trong container đã có image thì bạn đã push thành công rồi đó.
1Tổng kết 2
III. Tạm kếtVậy là các bạn đã biết cách deploy Node.js app đơn giản bằng docker rồi đúng không nhỉ. Tuy nhiên khi dự án càng lớn, sử dụng nhiều package, Dockerfile sẽ phải thêm bớt khá nhiều. Hy vọng bài viết hữu ích giúp cách bạn có thể deploy bằng docker dễ dàng hơn. Rất mong được sự góp ý của mọi người. |