Vue开发服务器无法在Docker容器内启动

时间:2020-09-02 09:30:07

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

我想为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

1 个答案:

答案 0 :(得分:0)

我弄清楚了问题所在

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

用于节点服务:

网络:

service_net:

ipv4_address: ${PROJECT_NET}.100