我正在尝试在本地机器上通过 Docker 安装 Discourse。
我将 discourse docker 克隆到我的文件夹中:
git clone https://github.com/SamSaffron/discourse_docker.git discourse
然后我跑了
sudo ./launcher
下载docker镜像。现在我不知道该怎么做。我试着开始
sudo ./discourse-setup
但它停止了,因为我有一个在端口 80 上运行的 Apache:
Port 80 appears to already be in use.
If you are trying to run Discourse simultaneously with another web
server like Apache or nginx, you will need to bind to a different port
See https://meta.discourse.org/t/17247
If you are reconfiguring an already-configured Discourse, use
./launcher stop app
to stop Discourse before you reconfigure it and try again.
所以我被告知查看这个页面https://meta.discourse.org/t/17247,我读到:
如果您想在与 Discourse 相同的机器上运行其他网站,则需要在 Docker 容器前设置额外的 NGINX 代理。
我现在真的需要安装 nginx 吗?我想,我可以将 docker 容器绑定到特定端口吗?!我很困惑为什么我必须 git clone 这个 repo,难道不应该将它们全部放在 docker 镜像中吗?
编辑:由于第一个答案,我在安装文件中作弊并更改了端口(第 230 行)。但这仅通过了检查,没有改变任何内容,并在运行一段时间后导致此错误:
/usr/bin/docker:守护进程的错误响应:驱动程序无法在端点应用程序上编程外部连接(c4af1d602e59c05b2d5bdb1de59aab89e6b591c6fb26ceebb18f0a0dc4abbf6d):启动用户空间代理时出错:监听 tcp 0.0.0.0:80:监听:地址已在使用中。
答案1
我现在无法完全测试这一点,但理论上如果你将 discourse-setup 文件中的第 230 行从 更改
check_port "80"
为自由端口,那么它应该可以正常工作这个帖子