Docker容器中的Angular2部署会干扰路由

时间:2016-08-19 08:55:29

标签: angular docker

我想在Docker容器中部署我的Angular2 / ts应用程序。我发现以下教程非常有用: Link。所以我的docker-compose.yml现在是:

version: '2'

services:
  httpd:
    image: httpd:latest
    volumes:
      - ./:/usr/local/apache2/htdocs/
      - ./node_modules:/usr/local/apache2/htdocs/node_modules
    ports:
      - "80:80"
  npm:
    image: treyjones/npm:latest
    volumes:
      - ./:/npm
  tsc:
    image: treyjones/tsc:latest
    volumes:
      - ./:/tsc

但我遇到的问题是路由无法正常工作。

我可以通过

访问我的应用
  

http://localhost:80/

它将我重定向到

  

http://localhost:80/data

所以到目前为止一切都很好。但我刷新我的页面,或尝试通过

来实现
  

http://localhost:80/data

我收到错误:

  

" GET / data HTTP / 1.1" 404 205

在我使用docker容器之前我已经遇到过这个问题,并使用live-server解决了它,如上所述 Link。这意味着我添加了脚本:

  

"服务":"同时\" live-server --port = 5556 --entry-file = index.html \" \"咽\" \" npm run tsc:w \" "

在我的package.json中。

但是我不知道如何将live-server集成到我的docker-configuration中,或者我如何操作httpd以便我可以像选项一样选择

  

- 条目文件= index.html的

的直播服务器。

1 个答案:

答案 0 :(得分:0)

  1. 您必须按照此处https://httpd.apache.org/docs/2.4/rewrite/remapping.html的说明配置httpd。这意味着基于httpd:latest创建自己的泊坞窗图像,添加路由的重新映射。
  2. 停止使用httpd并使用lite-server以您希望的方式提供所需的文件。再次,创建自己的docker镜像来实现这一目标。