我正在尝试为一个angular 17应用构建一个docker镜像。我在网上找到了几种代码变体,下面是最简单的一种。
FROM node:21-alpine3.18 AS build
EXPOSE 80
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/dist/myapp-frontend /usr/share/nginx/html
字符串
我能够构建并成功推送镜像到docker hub。然而,当我尝试在浏览器中访问应用程序时,我只能获得默认的nginx页面。
x1c 0d1x的数据
我的理解是,构建结果将被复制到**/usr/share/nginx/html文件夹**中。然而,当我登录该文件夹时,我只看到nginx默认文件。
的
我在上面的Dockerfile中缺少了什么吗?
1条答案
按热度按时间yrwegjxp1#
一切归功于@robert
通常,构建的结果会在
dist/<app-name>
中输出。我在angular v16上运行了一个ng构建。这就是行为。看起来angular 17正在一个名为browser的文件夹中输出构建结果。然而,这是angular.js中的配置,它显示
dist/<app-name>
。然而,它仍然添加了名为browser的文件夹。x1c 0d1x的数据
因此,更新Dockerfile起作用了。
COPY --from=builder /app/dist/myapp-frontend/browser /usr/share/nginx/html
个的
非常感谢@Rober。