【问题标题】:Vue dev server doesn't start inside a docker containerVue 开发服务器未在 docker 容器内启动
【发布时间】:2020-12-21 10:55:17
【问题描述】:

我想为我的 Dockerized Django(+gunicorn+db)+Vue+Nginx 项目进行开发配置,我不必每次都重建前端并使用 vue 开发服务器,特别是“vue-cli-服务服务”。 Nginx 监听 localhost:80 并将“/api”请求代理到端口 8000 上的上游 django,其余的代理到端口 8080 上的上游 vue 服务器。 Docker 成功构建了 4 个容器,但随后 vue 服务立即死亡。 that's what i get

这是它的 Dockerfile:

FROM node:12-alpine   
WORKDIR /frontend
COPY package*.json .
RUN npm install
COPY . .
RUN ls -al
EXPOSE 8080
CMD ["npm", "run", "serve"]

(如果我使用 RUN 而不是 CMD 作为最终命令,则构建服务器并且终端在 webpack 欢迎消息后挂起,但另一个选项卡中的“docker-compose ps”显示没有容器启动)

这是 docker-compose.yml 的一部分:

  frontend:
    build: ./frontend
    restart: on-failure
    container_name: vue
    expose:
       - 8080    
    volumes:
      - ./frontend:/home/frontend       
      - ./.env.dev:/home/frontend/.env:ro

project tree, if it helps

【问题讨论】:

    标签: node.js docker vue.js webpack-dev-server vue-cli


    【解决方案1】:

    我发现问题出在哪里

    1. 我注意到 docker-composer psdocker stats 返回不同的结果。 docker stats 显示了我的节点容器,但无法通过 nginx 或 8080/8081 访问它。
    2. 我添加了一个网络以包含我的所有容器,并且节点容器变得可访问。我对 .env 和 docker-compose.yaml 进行了更改。
    networks:
      service_net:
        ipam:
          driver: default
          config:
            - subnet: ${PROJECT_NET}.0/24
    

    对于节点服务:

    网络:

    服务网:

    ipv4_address: ${PROJECT_NET}.100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 2018-10-08
      • 2020-03-05
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2018-08-23
      • 2017-11-29
      相关资源
      最近更新 更多