Kam*_*ski 3 docker webpack-dev-server vue-cli
基本上我想要实现的目标是让我的应用程序运行在local.myapp.com而不是localhost.
注意:在主机内部,/etc/hosts我有127.0.0.1 local.myapp.com条目,并且我的 docker-compose 配置有ports: 80:80.
当我在主机上运行此命令时:yarn serve --port=80 --host=local.myapp.com一切正常,我可以通过 访问我的 Vue 应用程序local.myapp.com。但是我无法使用 Docker 以相同的方式配置它。
以下所有命令都在 docker 容器中运行:
输入http://local.myapp.com/-yarn serve --port=80给我无效的主机标头
输入http://local.myapp.com/-yarn serve --port=80 --host=local.myapp.com给我ERR_EMPTY_RESPONSE。
在容器内部进行wget http://local.myapp.com:80工作。
我缺少什么?
除了运行 Vue 容器之外,您还需要设置一些其他内容才能使其正常工作。
假设您的 Vue 应用程序已经有一个Dockerfile,您需要为反向代理设置一个额外的容器。它可能看起来像这样:
services:
...
proxy:
image: nginx
restart: always
depends_on:
- vue
ports:
- 80:80
volumes:
- ./nginx_conf/:/etc/nginx
Run Code Online (Sandbox Code Playgroud)
以及里面的配置nginx_conf
http {
server {
listen 80;
server_name local.myapp.com;
location / {
proxy_pass http://vue;
proxy_buffering on;
proxy_buffers 12 12k;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
}
Run Code Online (Sandbox Code Playgroud)
您收到空响应和无效主机标头的原因是容器的本地主机与主机的本地主机不同。
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |