Next.Js 13.4.18 Docker 部署后无法访问
<p>将项目 Next.js 升级后,通过 Docker 部署无法访问到服务,通过 <code>docker logs id</code> 检查日志,发现没有任何反应,甚至一个访问请求都没看到。</p><ol>
<li>
<p>一开始怀疑是打包的问题,将 Docker 容器中的服务文件全部拉下来,在本地跑..诶嘿~正常运行...排除打包问题</p>
</li>
<li>
<p>检查启动日志:<code>ready started server on 127.0.0.1:3000, url: http://127.0.0.1:3000</code><br>
上一个版本的启动日志:<code>ready started server on localhost:3000, url: http://localhost:3000</code></p>
</li>
</ol>
<p>搜了下 <code>127.0.0.1</code> 和 <code>localhost</code> 的区别:</p>
<blockquote>
<p>localhost也叫local ,正确的解释是:本地服务器</p>
<p>127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)</p>
<p>他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1</p>
<p>localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。</p>
<p>127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。</p>
<p>一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。<br>
————————————————<br>
版权声明:本文为CSDN博主「席飞剑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。<br>
原文链接:https://blog.csdn.net/xifeijian/article/details/12879395</p>
</blockquote>
<p>到 Next.js 官网查看 Changelog,果然啊,你小子!!!</p>
<p>v13.4.17</p>
<h3 id="core-changes">Core Changes</h3>
<h3 id="example-changes">Example Changes</h3>
<ul>
<li>Update Docker example to remove HOSTNAME: #54102</li>
</ul>
<p>查看官方 Docker 打包文件 https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile</p>
<p><strong>==>> set hostname to localhost</strong></p>
<pre><code class="language-dockerfile"># set hostname to localhost
ENV HOSTNAME "0.0.0.0" # 原来是 localhost
</code></pre><br><br>
来源:https://www.cnblogs.com/CloverYou/p/17650886.html
頁:
[1]