Em chạy được file docker compose rồi nhưng khi chat trên telegram thì bot trả kết quả
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/telegram/ext/_application.py", line 945, in process_update
await coroutine
File "/usr/local/lib/python3.8/site-packages/telegram/ext/_handler.py", line 135, in handle_update
return await self.callback(update, context)
File "bot/bot.py", line 141, in new_dialog_handle
await register_user_if_not_exists(update, context, update.message.from_user)
File "bot/bot.py", line 38, in register_user_if_not_exists
if not db.check_if_user_exists(user.id):
File "/code/bot/database.py", line 19, in check_if_user_exists
if self.user_collection.count_documents({"_id": user_id}) > 0:
File "/usr/local/lib/python3.8/site-packages/pymongo/collection.py", line 1842, in count_documents
return self._retryable_non_cursor_read(_cmd, session)
File "/usr/local/lib/python3.8/site-packages/pymongo/collection.py", line 1847, in _retryable_non_cursor_read
with client._tmp_session(session) as s:
File "/usr/local/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1757, in _tmp_session
s = self._ensure_session(session)
File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1740, in _ensure_session
return self.__start_session(True, causal_consistency=False)
File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1685, in __start_session
self._topology._check_implicit_session_support()
File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 538, in _check_implicit_session_support
self._check_session_support()
File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 554, in _check_session_support
self._select_servers_loop(
File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 238, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.Serv
Phần này do mình thiếu sót 1 tí, ở phần npm ci đúng ra sẽ là npm ci --production mới chính xác. Mình tách ra cho install lại vì ở môi trường prod chúng ta chỉ install depencies chứ không cần install devDependencies. Bác thử xóa node_modules để chạy thử 2 lệnh kia sẽ thấy khi có flag --production số lượng package install sẽ ít hơn.
Việc này giúp rút ngắn thời gian build. Docker lưu cache ở bước cài đặt dependencies. Ở các lần build sau nếu file package*.json không có sự thay đổi thì sẽ dùng cache để rút ngắn thời gian, ngược lại nếu có thì sẽ cho chạy lại bước cài đặt dependencies
Mình đồng ý với bác về ý này. Do đối với môi trường production mình thường xài CI/CD nên đã ignore folder dist từ git nên chưa phát sinh vấn đề. Mình sẽ lưu ý phần này hơn thanks bác.
ARG thì đôi khi bác build image không xài docker-compose thì nó sẽ có công dụng riêng. Mình chỉ chuẩn bị trước cho trường hợp biến môi trường có sự chỉnh sửa. Trong phạm vi bài viết này bác có thể bỏ qua và để theo NODE_ENV=production cũng được.
Cảm ơn bác đã góp ý, mình sẽ cập nhật góp ý của bác vào bài viết để mọi người dễ hiểu hơn, nếu còn gì thắc mắc cứ comment nha!
Lấy thư mục đã build được từ development.
-> Sao bạn không coppy luôn node_modules mà chỉ copy thư mục dist, và npm i lại ở stage production. 2 stage nằm ở 2 container khác nhau nhưng cùng báe image cùng version node, tại sao phải install lại.
Cuối cùng bạn phải copy hết, tại sao không copy hết từ đầu mà chỉ copy file package rồi đi copy hết thêm 1 lần nữa cho mất công.
File ignore không có ignore folder dist, copy dist vào rồi sao đó build ghi đè lên đôi khi sẽ bị issues, vì không xóa các file mà khi build mới không có.
Sao không dùng ENV NODE_ENV=production, mà thêm cái ARG để làm gì. File docker-compose cũng có config NODE_ENV=production, có cần thiết nữa không.
Nếu mạng chậm mà call api lúc sắp hết hạn token thì lúc nhận response về vẫn lỗi 401 hết hạn được. Còn để thừa 1 lần call và đặt interceptor vào response thì k gặp tình trạng này.
Mình muốn xây dựng hệ thống nhận diện khuôn mặt chấm công (Phục vụ cho việc học tập tìm hiểu). Hiện mình đang dự định dùng MTCNN vs Facenet kết hợp phần cứng là Raspeberry. Rất mong bạn chia sẽ giúp mình cách xây dựng và train từ đầu với ạ
THẢO LUẬN
Em chạy được file docker compose rồi nhưng khi chat trên telegram thì bot trả kết quả
Mọi người có gì chỉ giáo giúp e với ạ
Một số thông tin mà chat gpt cung cấp tui thấy cũng chưa chính xác hoàn toàn, nên anh em xài thì lưu ý nhé
tài khoản smspool bác còn tiền ko, mua giúp tui cái otp đi, tại giờ nạp vào 1$ mà mua cái otp có 0, mấy đô, còn dư phí quá
okie, thanks bạn
Tuyệt zoi 😄😄
Thanks bác đã góp ý. Mình sẽ giải đáp như sau:
npm ciđúng ra sẽ lànpm ci --productionmới chính xác. Mình tách ra cho install lại vì ở môi trường prod chúng ta chỉ install depencies chứ không cần install devDependencies. Bác thử xóa node_modules để chạy thử 2 lệnh kia sẽ thấy khi có flag --production số lượng package install sẽ ít hơn.@hao3004 Cảm ơn Hảo nhìu ❣️
Chủ đề thú vị quá anh oii! Em rất thích bài viết này ạ! 💯💯
Cảm ơn bạn đã đón đọc, mình sẽ ra tiếp các bài viết chia sẻ về công nghệ sớm nhất có thể nhé 😘
cho mình hỏi port nodejs là 4000 hay 3000 ạ
Cảm ơn góp ý của bạn nhiều nhé 🤩
bài viết rất chân thực và sống động, rất hay và cảm động, cảm ơn bạn. love u 3000
@sangdesign93 có vẻ như bạn đang chạy sai image docker, cho mình xem câu lệnh bạn chạy được k
Nếu mạng chậm mà call api lúc sắp hết hạn token thì lúc nhận response về vẫn lỗi 401 hết hạn được. Còn để thừa 1 lần call và đặt interceptor vào response thì k gặp tình trạng này.
mình làm lại từ đầu thì giờ nó báo lỗi như vậy, bạn xem thử nhé
Bạn ơi, bạn tìm được cách chưa, mình cũng đang suy nghĩ về vấn đề môi trường lập trình phải cài đi cài lại mỗi lần đổi máy hoặc hệ điều hành.
Mong bạn chỉ bảo mình với nếu đã tìm ra phương pháp.
@dangthien đây nhé 😂 https://www.facebook.com/groups/viblo.community.official/posts/1602060513590911/
Tuyệt vời đúng cái đang cần để nghịch 😃
Mình muốn xây dựng hệ thống nhận diện khuôn mặt chấm công (Phục vụ cho việc học tập tìm hiểu). Hiện mình đang dự định dùng MTCNN vs Facenet kết hợp phần cứng là Raspeberry. Rất mong bạn chia sẽ giúp mình cách xây dựng và train từ đầu với ạ