微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Vue开发服务器无法在Docker容器内启动

我想为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. 我注意到 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。