@just-pthai-it còn lỗi của e bên trên, sao e đang build image mà e lại COPY cả volume chứa data của nó vào làm chi?
e nên ignore volume đi trong quá trình build image, vì nó ko cần thiết, làm cho image của e nặng nữa. volume chứa data nên tách rời khỏi Dockerfile, và đc mount ở docker-compose.yml
còn lỗi thì quá rõ ràng, do volume kia được sinh ra bởi container nó có 1 permission nào đó, lúc build image thì ở Dockerfile e đang cố gắng read/write với 1 user ko có đủ permission (non-root user rồi)
@just-pthai-it uk e, hầu như a đều mount trực tiếp vào đường dẫn nếu có thể, vì a có thể control được folder luôn, move qua lại hoặc clone đều dễ. Làm cách này đúng là có những trường hợp gặp lỗi permission, nhưng nó dạy cho a hiểu về permission trên Linux và fix các lỗi liên quan tới Docker, sau này quen rồi thì cũng mượt.
Nhưng đúng là dùng Docker volume như e nói thì behaviour nó sẽ consistent trên các môi trường, sẽ ko còn những đoạn note dành cho bạn nào đang dùng windows nữa
https://socket.io/docs/v4/client-options/#auth
ở client bạn thêm option auth, truyền token (JWT hoặc khác) vào và gửi về server, ở server phần event register (on connection), bạn lấy token từ socket.getConnectData() rồi xử lý token để lấy thông tin session, session của socket.io là stateful nên muốn lưu thêm dữ liệu cho session đó thì cứ thêm vào cái connect data là được. Event connection nó chỉ chạy khi client handshake, những lần sau gửi message nó sẽ không chạy lại nên sẽ không bị verify nhiều lần nhé.
Mình để source mẫu ở branch này https://github.com/huyvu8051/springboot-socketio/tree/add-security
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
@maitrungduc1410 A cho e hỏi là trong suốt quá trình làm việc của a thì a vẫn luôn dùng bind mount để lưu trữ data của các service a. Tại qua vụ này thì e có đọc kĩ hơn và thấy cái volume mount được docker khuyến khích sử dụng hơn.
Còn cái này thì là vấn đề e đang gặp phải khi dùng bind mount (cả docker engine và docker-desktop). Đó là sau khi chạy docker compose và các service như db đã sinh ra data rồi, sau đó thì e muốn sửa lại Dockerfile một chút thì khi build lại image sẽ gặp cái lỗi sau đây mà e có tìm hiểu thì có vẻ là do docker ko có quyền đối với các file data mà đã được sinh ra trong lần chạy trước. Không biết a đã bị trường hợp này chưa, nó có bình thường ko và nên giải quyết nó ra sao. Vì e nghĩ việc chỉnh sửa lại Dockerfile cho app của mình thì nó cũng khá là bình thường trong quá trình phát triển dự án.
THẢO LUẬN
Bạn giỏi thật. Ngưỡng mộ quá
@truongannv bạn gửi lỗi lên để mọi người xem bị lỗi gì
Nhưng chỉ có t với ô à, liệu có xôm được ko=))) để đôi ta vào trao đổi chiêu thức
có link code đầy đủ k cho mình xin nghiên cứu với
mình vừa thử xong và vẫn không được ạ
bác lập nhóm riêng trên fb đi bác, trao đổi cho xôm
@just-pthai-it còn lỗi của e bên trên, sao e đang build image mà e lại COPY cả volume chứa data của nó vào làm chi?
e nên ignore volume đi trong quá trình build image, vì nó ko cần thiết, làm cho image của e nặng nữa. volume chứa data nên tách rời khỏi Dockerfile, và đc mount ở docker-compose.yml
còn lỗi thì quá rõ ràng, do volume kia được sinh ra bởi container nó có 1 permission nào đó, lúc build image thì ở Dockerfile e đang cố gắng read/write với 1 user ko có đủ permission (non-root user rồi)
@just-pthai-it uk e, hầu như a đều mount trực tiếp vào đường dẫn nếu có thể, vì a có thể control được folder luôn, move qua lại hoặc clone đều dễ. Làm cách này đúng là có những trường hợp gặp lỗi permission, nhưng nó dạy cho a hiểu về permission trên Linux và fix các lỗi liên quan tới Docker, sau này quen rồi thì cũng mượt.
Nhưng đúng là dùng Docker volume như e nói thì behaviour nó sẽ consistent trên các môi trường, sẽ ko còn những đoạn note
dành cho bạn nào đang dùng windowsnữaak không nhé. nó độc lập mà
https://socket.io/docs/v4/client-options/#auth ở client bạn thêm option auth, truyền token (JWT hoặc khác) vào và gửi về server, ở server phần event register (on connection), bạn lấy token từ socket.getConnectData() rồi xử lý token để lấy thông tin session, session của socket.io là stateful nên muốn lưu thêm dữ liệu cho session đó thì cứ thêm vào cái connect data là được. Event connection nó chỉ chạy khi client handshake, những lần sau gửi message nó sẽ không chạy lại nên sẽ không bị verify nhiều lần nhé. Mình để source mẫu ở branch này https://github.com/huyvu8051/springboot-socketio/tree/add-security
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
hi bro, các bài viết tiếp theo được đăng trên VNTechies Dev Blog tại địa chỉ sau https://go.vntechies.com/90ngaydevops
Các bài viết cũng sẽ được repost trên viblo trong thời gian sớm nhất
hi bro, các bài viết tiếp theo được đăng trên VNTechies Dev Blog tại địa chỉ sau https://go.vntechies.com/90ngaydevops
Các bài viết cũng sẽ được repost trên viblo trong thời gian sớm nhất
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/JFiBjJ thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳.
@maitrungduc1410 A cho e hỏi là trong suốt quá trình làm việc của a thì a vẫn luôn dùng bind mount để lưu trữ data của các service a. Tại qua vụ này thì e có đọc kĩ hơn và thấy cái volume mount được docker khuyến khích sử dụng hơn. Còn cái này thì là vấn đề e đang gặp phải khi dùng bind mount (cả docker engine và docker-desktop). Đó là sau khi chạy docker compose và các service như db đã sinh ra data rồi, sau đó thì e muốn sửa lại Dockerfile một chút thì khi build lại image sẽ gặp cái lỗi sau đây mà e có tìm hiểu thì có vẻ là do docker ko có quyền đối với các file data mà đã được sinh ra trong lần chạy trước. Không biết a đã bị trường hợp này chưa, nó có bình thường ko và nên giải quyết nó ra sao. Vì e nghĩ việc chỉnh sửa lại Dockerfile cho app của mình thì nó cũng khá là bình thường trong quá trình phát triển dự án.
Bài viết hữu ích thật 😄 +1 tác giả năm mới vui vẻ 👏
@giang.nt cũng vẫn lỗi trên
@vietlovetan cảm ơn bạn đã theo dõi
B thử cho mỗi tin nhắn 1 role xem như ví dụ của docs có ấy