gpt4 book ai didi

angular - 无法访问Docker容器中的angular应用

转载 作者:行者123 更新时间:2023-12-02 18:20:43 26 4
gpt4 key购买 nike

我的目的是为我简单的 Angular 网站提供 docker 并在本地对其进行测试。下面给出的是Dockerfile。

# STEP 1 build static website
FROM node:alpine as builder
RUN apk update && apk add --no-cache make git

# Create app directory
WORKDIR /app

# Install app dependencies
COPY package.json package-lock.json /app/
RUN cd /app && npm set progress=false && npm install

# Copy project files into the docker image
COPY . /app
RUN cd /app && npm run build

# STEP 2 build a small nginx image with static website
FROM nginx:alpine

## Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*

## From 'builder' copy website to default nginx public folder
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

我正在此Dockerfile之上执行以下命令。
docker build .
docker tag a585f0653f3b abameerdeen/website:latest
docker run -p 80:8000 abameerdeen/website:latest

docker ps

给出以下结果。

enter image description here

但是,我仍然无法访问 http://localhost:8000上的网站。

我尝试了以下解决方案,但结果不会改变。我在本地也安装了nginx的ubuntu机器上。

在Dockerfile和docker run中运行EXPOSE 80 -p 80:8000 abameerdeen / website:latest

Dockerfile中的EXPOSE 80和docker运行abameerdeen / website:latest

这是本地计算机中端口的状态。
enter image description here

编辑:更新的端口号。

最佳答案

我一直在更改Dockerfile和不同的基本镜像,以下工作终于完成了。我删除了整个nginx,并在节点上完成了此操作。但这不是理想的解决方案,因为我想要一个轻巧的图像。如果有人可以提出理想的解决方案,那就接受它作为答案。

# base image
FROM node:9.6.1

# install chrome for protractor tests
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
RUN apt-get update && apt-get install -yq google-chrome-stable

# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# add `/usr/src/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH

# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@1.7.1

# add app
COPY . /usr/src/app

#expose the port
EXPOSE 5000

# start app
CMD ng serve --port 5000 --host 0.0.0.0

然后,
docker build . -t my_image_tag
docker run -p 5000:5000 my_image_tag

实际上,@ Saddam Pojeee的评论触发了我猛扑到容器中,查看文件是否确实存在。文件不存在,所以我更改了图像。

关于angular - 无法访问Docker容器中的angular应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53977593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com