Kết quả: image size 413Mb, files + folders đều của root:
So sánh size của 2 image:
Câu số 2: vì sao RUN chown -R appuser:appgroup /app lại lâu, lí do là ví nó sẽ duyệt qua cả node_modules, nên sẽ khá lâu. Cách để fix là bạn có thể đổi qua user appuser:appgroup trước khi chạy npm install, thì như vậy folder node_modules sẽ tự có quyền của appuser:appgroup luôn, và bạn chỉ cẩn chown những file/folder còn lại.
Hướng dẫn cách cải thiện Dockerfile để chown chạy nhanh hơn:
FROM node:16-alpineWORKDIR /app# Đổi quyền của cả folder /app về non-root, lúc này folder rỗng nên làm rất nhanhRUN chown -R node:node /appUSER node# các commands dưới đây sẽ đều copy hoặc làm sinh ra các files/folders nằm dưới quyền của user node luônCOPY--chown=node:node package.json yarn.lock ./# vì ta đang là user node sẵn rồi, nên yarn install sinh ra cả folder node_modules cũng của "node" luônRUN yarn installCOPY--chown=node:node . .CMD [ "yarn", "start" ]
mình đang dùng máy win10 để build, cho mình hỏi tí tại sao khi build thêm quyền user size của image lại tăng đột biến?mình đã thử đi thử lại thì vẫn xảy ra vấn đề đó!và 1 vấn đề nữa là chạy RUN chown -R appuser:appgroup /app mất tận 198s lận.giải thích vấn đề này hộ mình với! xin cảm ơn bạn,1 chủ để rất hay!
THẢO LUẬN
@huukimit endpoind và idapp key đều là của sanbox nhưng acc test trang quản lý, cũng như app sanbox thì lại ko dùng được,
bài rất hay trực quan lắm luôn tác giả ơi.
@quan12xz ok bạn
Bạn extract đoạn này sang codesandbox.io hay đâu đó để mình vọc thử xem có support đc ko 🙂
@maitrungduc1410 cảm ơn bro rất nhiều!
Em sửa được rồi ạ. Cảm ơn anh rất nhiều
Bạn có setup endpoint Zalo Pay là sandbox chưa thế? Nếu test khi dev thì phải dùng sandbox - môi trường giả lập.
@tonghoangvu Vậy là nên học spring boot trước rồi mới học MVC đúng không ạ. Vậy có cần học servlet trước khi học spring không ạ
Long time no seeeeeeeee
Hê lô anh nhé
Tác giả xin chào lại em nhé.
Hello hello anh ạ. Anh bảo chào thì em chào thui chớ chưa đọc bài ạ
Copy cái bài cũng méo ra hồn, viết chữ typescript cuối bài còn viết sai.
hi bạn,
Câu hỏi số 1: image size tăng, 96,69% bạn copy thừa file thôi
. Để chứng minh cho bạn thì mình đã trực tiếp thử điều này:
Đầu tiên mình sẽ build + chạy image với non-root user (user
node)Kết quả: image size 415Mb, files + folders trong container non-root hết:
Tiếp đó mình build image với
rootuser:Kết quả: image size 413Mb, files + folders đều của
root:So sánh size của 2 image:
Câu số 2: vì sao
RUN chown -R appuser:appgroup /applại lâu, lí do là ví nó sẽ duyệt qua cả node_modules, nên sẽ khá lâu. Cách để fix là bạn có thể đổi qua userappuser:appgrouptrước khi chạynpm install, thì như vậy foldernode_modulessẽ tự có quyền củaappuser:appgroupluôn, và bạn chỉ cẩn chown những file/folder còn lại.Hướng dẫn cách cải thiện Dockerfile để
chownchạy nhanh hơn:mình đang dùng máy win10 để build, cho mình hỏi tí tại sao khi build thêm quyền user size của image lại tăng đột biến?mình đã thử đi thử lại thì vẫn xảy ra vấn đề đó!và 1 vấn đề nữa là chạy RUN chown -R appuser:appgroup /app mất tận 198s lận.giải thích vấn đề này hộ mình với! xin cảm ơn bạn,1 chủ để rất hay!
great
💪👋💪💪@test2022 yayy, okie e nhé 💪
@maitrungduc1410 oke anh Để lúc nào em thử xem sao
Cuối cùng cũng chạy được rồi. Bài viết của anh hay lắm
@maitrungduc1410
Bài viết đỉnh của chóp😃