创建React的Docker镜像时,有一种方法可以减小其大小
曾经做过的事情
- マルチステージビルドを行う
实际的 Dockerfile
FROM debian:bullseye-slim as build
WORKDIR /app
COPY . .
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update \
&& apt-get install -y yarn nodejs npm \
&& npm install npx -g \
&& npx webpack --mode production \
&& rm -rf /var/cache/apt
FROM debian:bullseye-slim as deploy
WORKDIR /app
COPY --from=build /app/public /app/public
...
仅仅删除 node_modules,实际图像大小就减少到了1/3以下。
虽然在其他编译型语言中已经知道多阶段构建非常有效,但在React中这也是一个好的发现。
結束之時
最后我简洁地说一下,只要启动Nginx或者其他能够托管静态文件的东西,就可以顺利访问。