我正在尝试将 Youtrack 安装从一台服务器 (Windows) 移至另一台服务器 (Ubuntu)。由于现在我将使用 Linux,因此我想使用 docker 来设置 Youtrack 实例。
我的步骤:
我已经从第一台服务器进行了备份。
我已经在第二台服务器上准备了新文件夹并运行docker镜像:
docker run --rm -it --name my-youtrack \ -v /home/user/docker-services/youtrack/data:/opt/youtrack/data \ -v /home/user/docker-services/youtrack/conf:/opt/youtrack/conf \ -v /home/user/docker-services/youtrack/logs:/opt/youtrack/logs \ -v /home/user/docker-services/youtrack/backups:/opt/youtrack/backups \ -p 8080:8080 \ -p 443:443 jetbrains/youtrack:2019.2.56594
容器启动成功:
Starting YouTrack... * Configuring JetBrains YouTrack 2019.2 * Made default base-url 'http://localhost:8080/' from hostname 'localhost' and listen port '8080' * JetBrains YouTrack 2019.2 runtime environment is successfully configured * Loading logging configuration from /opt/youtrack/lib/ext/log4j.xml * Redirecting JetBrains YouTrack 2019.2 logging to /opt/youtrack/logs/internal/services/bundleProcess * Configuring Service-Container[bundleProcess] * Configuring Bundle Backend Service * Configuring Configuration Wizard * Starting Service-Container[bundleProcess] * Starting Bundle Backend Service * Starting Configuration Wizard * JetBrains YouTrack 2019.2 Configuration Wizard will listen inside container on {0.0.0.0:8080}/ after start and can be accessed by URL [http://<put-your-docker-HOST-name-here>:<put-host-port-mapped-to-container-port-8080-here>/?wizard_token=VRjOG9ApYdo3UZky5xZW]
我也可以通过浏览器访问配置向导,
http://my-host.com:8080/?wizard_token=VRjOG9ApYdo3UZky5xZW
在其中选择“升级”选项,然后选择我的备份文件。但在下一步(当我选择“https”选项卡时),我收到错误:无法监听地址 0.0.0.0 和端口 443。请验证现有 YouTrack 实例是否已停止,并且没有其他服务监听相同的地址和端口。
我不明白为什么会出现这个错误?
netstat的结果为:
user@myhost:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 909/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1261/sshd
tcp6 0 0 :::443 :::* LISTEN 26920/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 24942/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1261/sshd
udp 0 0 127.0.0.53:53 0.0.0.0:* 909/systemd-resolve
443 is free on the host machine
问题仅在于 docker,当我通过“ZIP”方法运行 Youtrack 时 - 一切都正常。
我究竟做错了什么?
答案1
我已经从另一个方面解决了这个问题。我只是在 Youtrack docker 容器前面添加了一个 nginx 实例作为反向代理。所以现在我的 nginx 管理 https 流量并通过 http 与 Youtrack docker 容器通信。