THẢO LUẬN

thg 11 11, 2022 7:03 SA

@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,

+1

bài rất hay trực quan lắm luôn tác giả ơi.

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 11, 2022 6:20 SA

@quan12xz ok bạn

0
thg 11 11, 2022 6:16 SA

Bạn extract đoạn này sang codesandbox.io hay đâu đó để mình vọc thử xem có support đc ko 🙂

0
thg 11 11, 2022 6:13 SA

@maitrungduc1410 cảm ơn bro rất nhiều!

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 11 11, 2022 6:10 SA

Em sửa được rồi ạ. Cảm ơn anh rất nhiều

+1
thg 11 11, 2022 6:00 SA

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.

0
thg 11 11, 2022 5:13 SA

@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 ạ

0
thg 11 11, 2022 4:19 SA

Long time no seeeeeeeee 😆

+1
thg 11 11, 2022 4:18 SA

Hê lô anh nhé 🤣

+1
thg 11 11, 2022 4:04 SA

Tác giả xin chào lại em nhé.

0
thg 11 11, 2022 4:03 SA

Hello hello anh ạ. Anh bảo chào thì em chào thui chớ chưa đọc bài ạ

+1
Avatar
đã bình luận cho bài viết
thg 11 11, 2022 4:01 SA

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. image.png

0

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)

FROM node:16-alpine
WORKDIR /app
RUN chown -R node:node /app
USER node
COPY package.json yarn.lock ./
RUN yarn install
COPY --chown=node:node . .
CMD [ "yarn", "start" ]

Kết quả: image size 415Mb, files + folders trong container non-root hết:

Screenshot 2022-11-11 at 10.45.13 AM.pngScreenshot 2022-11-11 at 10.45.33 AM.png

Tiếp đó mình build image với root user:

# build stage
FROM node:16-alpine
WORKDIR /app
# RUN chown -R node:node /app
# USER node
COPY package.json yarn.lock ./
RUN yarn install
COPY . .
CMD [ "yarn", "start" ]

Kết quả: image size 413Mb, files + folders đều của root:

Screenshot 2022-11-11 at 10.47.52 AM.png Screenshot 2022-11-11 at 10.58.04 AM.png

So sánh size của 2 image:

Screenshot 2022-11-11 at 10.48.11 AM.png

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-alpine
WORKDIR /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 nhanh
RUN chown -R node:node /app
USER 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ôn
COPY --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ôn
RUN yarn install
COPY --chown=node:node . .
CMD [ "yarn", "start" ]
0
thg 11 11, 2022 3:30 SA

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!

430MB.png597MB.png 198s.png

0

💪👋💪💪@test2022 yayy, okie e nhé 💪

0
thg 11 10, 2022 2:28 CH

@maitrungduc1410 oke anh Để lúc nào em thử xem sao

+1

Cuối cùng cũng chạy được rồi. Bài viết của anh hay lắm 😃 @maitrungduc1410

+1

Bài viết đỉnh của chóp😃

+2
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí