小编Mik*_*ike的帖子

Dockerfile 应该执行“npm install”和“npm run build”还是只复制这些文件?

我对 Docker 有点陌生,并试图围绕其中的一些概念进行思考。

在很多教程和文章(实际上,几乎所有)中,这是一个典型的用于 create-react-app 和 nginx 配置的 Dockerfile:

# CRA
FROM node:alpine as build-deps
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
RUN npm install
COPY . ./
RUN npm run build

# Nginx
FROM nginx:1.12-alpine
COPY --from=build-deps /usr/src/app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)

假设一切都按预期进行,图像将是巨大的。

我有采取稍微不同的方法的想法。在npm install && npm run build本地运行,然后将其作为 Dockerfile:

FROM nginx:1.12-alpine
WORKDIR /opt/app-root

COPY ./nginx/nginx.conf /etc/nginx/
COPY ./build ./src/dist/

COPY ./node_modules .

USER 1001
EXPOSE 8080
ENTRYPOINT ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)

哪种方法更好?每当我跑步时docker …

build node.js docker dockerfile devops

13
推荐指数
2
解决办法
2416
查看次数

标签 统计

build ×1

devops ×1

docker ×1

dockerfile ×1

node.js ×1