【问题标题】:Docker-compose builds but app does not serve on localhostDocker-compose 构建但应用程序不在本地主机上提供服务
【发布时间】:2020-11-23 02:12:11
【问题描述】:

Docker 新手在这里。 Docker-compose 文件构建没有任何问题,但是当我尝试在 localhost:4200 上运行我的应用程序时,我收到一条消息 - localhost 没有在 chrome 上发送任何数据,并且服务器意外断开了 safari 中的连接。我正在开发 MacOs Catalina。这是我的 yml 文件:

version: '3.0' 

services:
  my-portal:

    build: .

    ports:
    - "4200:4200"

    depends_on:
    - backend

  backend: 

   build: ./backend

   ports:
    - "3000:3000"

   environment:

      POSTGRES_HOST: host.docker.internal
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: mypwd

   depends_on:
    -db

  db:
    image: postgres:9.6-alpine

    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: "postgres"
      POSTGRES_PASSWORD: mypwd
      POSTGRES_HOST: host.docker.internal

    ports:
    - 5432:5432
    restart: always
    volumes:
    - ./docker/db/data:/var/lib/postgresql/data

Angular 日志:

/docker-entrypoint.sh:配置完成;准备启动 节点日志:已连接数据库 Postgres 的日志:数据库系统已准备好接受连接

以下是我的 Angular 和 Node Docker 文件:

FROM node:latest AS builder
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build --prod
EXPOSE 4200
# Stage 2
FROM nginx:alpine
COPY --from=builder /app/dist/*  /usr/share/nginx/html/

节点:

FROM node:12    
WORKDIR /backend    
COPY package*.json ./    
RUN npm install    
COPY . .    
EXPOSE 3000
CMD [ "node", "server.js" ]

当我创建 Angular 图像并在 localhost:4200 上运行我的应用程序时,它运行良好。如果我遗漏了什么,请告诉我。

【问题讨论】:

    标签: node.js angular docker docker-compose yaml


    【解决方案1】:

    您的 Angular 容器是在 FROM nginx 构建的,并且您使用来自 Docker Hub nginx image 的默认 Nginx 配置。它在端口 80 上侦听,因此这是您在使用 ports: 指令时需要使用的端口号:

    services:
      quickcoms-portal:
        build: .
        ports:
        - "4200:80" # <-- second port must match nginx image's port
        depends_on:
        - backend
    

    第一阶段的EXPOSE指令被完全忽略,你可以删除它。 FROM nginx 行导致 docker build 基本上完全从一个新的基础映像重新开始,因此您的最终映像是库存 Nginx 加上您 COPY --from=builder 的文件。

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2018-05-26
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      相关资源
      最近更新 更多