我正试图在docker中开发astro.js。
这是我的docker-compose.yml
文件:
version: "3.9"
services:
site:
image: node:lts-bullseye-slim
ports:
- 3000:3000
volumes:
- /project:/project
command: >
sh -c
"
cd /project
&& npm run install
&& npm run dev &
tail -f /dev/null
"
我可以看到astro正在码头里面跑。我可以从docker容器中curl localhost:3000
,它显示了astro项目的默认页面。
然而,当我尝试在笔记本电脑上访问localhost:3000
时,它会给msERR_EMPTY_RESPONSE
错误。
我该怎么办?
更新:/project
只是使用npx create-astro
命令创建的一个非常简单的典型astro
应用程序。
我尝试使用你的docker-compose.yml文件,然后我发现了一些问题,如下所示。
- 我第一次使用";码头工人组成";命令和";docker记录my-astro-site_site_1";。日志显示";未找到npm运行安装";。所以我改变了";docker compose.yml";从"&;npm运行安装";至"&;npm安装";容器日志
- 在那之后,当我跑";码头工人组成";并记录容器。上面写着";您在当前使用的平台之外的其他平台上安装了esbuild"因为我使用M1并在启动docker compose之前在容器外安装依赖项。所以我删除node_modules和package-lock.json;码头工人组成";容器日志
- 最后,我发现了与您发现的相同的问题";ERR_EMPTY_REPONSE";。这是因为当你开始使用dev时,你不会公开端口;docker compose.yml";从"&;npm运行dev";至"&;npm运行dev--host 0.0.0.0";并运行";码头工人组成";。这是工作!。我的docker撰写文件如下所示:
version: "3.9"
services:
site:
image: node:lts-bullseye-slim
ports:
- 3000:3000
volumes:
- /Users/komphet/dev/my-astro-site:/project
command: >
sh -c
"
cd /project
&& npm install
&& npm run dev -- --host 0.0.0.0 &
tail -f /dev/null
"
我希望它对您的软件开发有帮助。享受