Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker部署后无法访问API端口 #133

Closed
QLozin opened this issue Mar 14, 2023 · 22 comments
Closed

Docker部署后无法访问API端口 #133

QLozin opened this issue Mar 14, 2023 · 22 comments

Comments

@QLozin
Copy link
Contributor

QLozin commented Mar 14, 2023

在云服务器中部署
使用
docker run --name chaoxing -p 5000:5000 gh....
拉起镜像后,再使用Nginx Docker进行反代理,反代理大致如下:
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://超星容器的网桥IP;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
ssl ....
前端能正常访问但是无法登录

显示是登录的请求使用的是localhost:5000地址,这显然不是正确的
文档中似乎没有说明如何去修改这个,希望得到你的帮助。

@cxOrz

This comment was marked as resolved.

@QLozin
Copy link
Contributor Author

QLozin commented Mar 14, 2023

非常抱歉没有注意到相关表述
在docker内的文件地址可能不同
我尝试在docker镜像里面寻找find / -name api.ts
结果为
/app/apps/server/src/configs/api.ts
/app/apps/web/src/config/api.ts
经过查看,修改了②中的const baseUrl ='http://docker网桥中容器本身的IP : 5000'
然后重启了容器
不幸的是,他没有按预想的那样工作,前端依然尝试在localhost寻找API接口
我不知道是否正确修改了文件或者按照步骤去进行
希望能获得更多指导

@cxOrz
Copy link
Owner

cxOrz commented Mar 14, 2023

Web页面,修改完源码,得重新构建才生效

@QLozin
Copy link
Contributor Author

QLozin commented Mar 14, 2023

非常感谢您的回答!
我已经初步解决了问题并顺利使用。
唯一的缺憾在于docker容器必须将5000端口映射到宿主机才能正常运作,难以使用nginx的反代理去代理5000端口。
我的nginx关于反代理的写法如下
图片
如果您比较忙,我可以就这么用着。
感谢您的帮助!

@cxOrz
Copy link
Owner

cxOrz commented Mar 14, 2023

肯定得把 5000 映射出来,不然外界访问不到。
最新 Docker 镜像里自带 Nginx,和接口一块启动的,不用在外面再配个 Nginx,直接改里面的配置文件就行,他俩都在同一个容器,配反向代理就不用 172...了,直接 localhost 应该就可以

@bujue1
Copy link

bujue1 commented Mar 14, 2023

@cxOrz 您好 请问这样是什么问题呢
image

@bujue1
Copy link

bujue1 commented Mar 14, 2023

image

已经解决了感谢。我是在宝塔上面搭建的,需要先把5000端口映射到域名
然后修改src/configs/api.ts
const baseUrl ='http://域名' 即可 //IP:5000会出现上图异常

@cxOrz cxOrz pinned this issue Mar 15, 2023
@QLozin QLozin closed this as completed Mar 15, 2023
@DUXING130
Copy link

非常感谢您的回答! 我已经初步解决了问题并顺利使用。 唯一的缺憾在于docker容器必须将5000端口映射到宿主机才能正常运作,难以使用nginx的反代理去代理5000端口。 我的nginx关于反代理的写法如下 图片 如果您比较忙,我可以就这么用着。 感谢您的帮助!

我能弱弱问一句你是如何在docker里重新build的嘛?是直接修改镜像然后重建容器?

@cxOrz
Copy link
Owner

cxOrz commented Mar 23, 2023

代码重新构建完,重启容器就行了

@DUXING130
Copy link

代码重新构建完,重启容器就行了

docker拉过来的镜像可以直接重新构建?

@cxOrz
Copy link
Owner

cxOrz commented Mar 23, 2023

docker attach 进容器,去里面修改、构建代码,代码在 /app 目录下。

@QLozin
Copy link
Contributor Author

QLozin commented Mar 23, 2023

非常感谢您的回答! 我已经初步解决了问题并顺利使用。 唯一的缺憾在于docker容器必须将5000端口映射到宿主机才能正常运作,难以使用nginx的反代理去代理5000端口。 我的nginx关于反代理的写法如下 图片 如果您比较忙,我可以就这么用着。 感谢您的帮助!

我能弱弱问一句你是如何在docker里重新build的嘛?是直接修改镜像然后重建容器?

pnpm build等指令,在文档里有

@DUXING130
Copy link

非常感谢您的回答! 我已经初步解决了问题并顺利使用。 唯一的缺憾在于docker容器必须将5000端口映射到宿主机才能正常运作,难以使用nginx的反代理去代理5000端口。 我的nginx关于反代理的写法如下 图片 如果您比较忙,我可以就这么用着。 感谢您的帮助!

我能弱弱问一句你是如何在docker里重新build的嘛?是直接修改镜像然后重建容器?

pnpm build等指令,在文档里有

收到

@Ta01017
Copy link

Ta01017 commented Apr 3, 2023

docker attach 进容器,去里面修改、构建代码,代码在 /app 目录下。

您好,我使用docker attach进容器的时候会卡住,没反应,这是什么问题 TAT

@QLozin
Copy link
Contributor Author

QLozin commented Apr 3, 2023

docker attach 进容器,去里面修改、构建代码,代码在 /app 目录下。

您好,我使用docker attach进容器的时候会卡住,没反应,这是什么问题 TAT

使用docker exec -it /bin/bash(有时候使用/bin/sh)试试?

@Ta01017
Copy link

Ta01017 commented Apr 3, 2023

docker attach 进容器,去里面修改、构建代码,代码在 /app 目录下。

您好,我使用docker attach进容器的时候会卡住,没反应,这是什么问题 TAT

使用docker exec -it /bin/bash(有时候使用/bin/sh)试试?

好的好的

@cxOrz
Copy link
Owner

cxOrz commented Apr 24, 2023

关于 Docker 镜像的使用说明,请参考 DockerGuide,感谢 @QLozin 的文档

@Hwchenxin
Copy link

image
哥,这种的只能在终端运行,如何让他自动运行

@QLozin
Copy link
Contributor Author

QLozin commented Oct 6, 2023

image 哥,这种的只能在终端运行,如何让他自动运行

docker部署后他就在容器里运行了,不清楚你所说的“自动运行”意味着什么,我也很少使用1Panel
NEED MORE INFO

@Hwchenxin
Copy link

}V MG OMZ((B5_KCWESQ%X3
哥,您好这种打卡的他要终端输入命令每次都要启动。我想让他容器启动,他这个脚本也跟着启动就不要我去终端输入命令了

@cxOrz
Copy link
Owner

cxOrz commented Oct 7, 2023

容器启动之后,不需要进入命令行运行什么东西。直接通过 域名/IP:端口 访问页面就行了。

@Hwchenxin
Copy link

Hwchenxin commented Oct 7, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants