MrC*_*ujo 5 node.js docker dockerfile svelte sveltekit
我有一个 Svelte(带有 Sveltekit)应用程序,我刚刚对其进行了容器化。它构建正确,运行时没有错误,但我无法从浏览器访问它。我尝试访问http://localhost:5050/
,http://0.0.0.0:5050/
但我得到:
This page isn\xe2\x80\x99t working\nlocalhost didn\xe2\x80\x99t send any data.\nERR_EMPTY_RESPONSE\n
Run Code Online (Sandbox Code Playgroud)\n这是Dockerfile
我正在使用的:
# Our Node base image\nFROM node:19-alpine\n\n# Set the Node environment to development to ensure all packages are installed\nENV NODE_ENV development\n\n# Change our current working directory\nWORKDIR /app\n\n# Copy over `package.json` and lock files to optimize the build process\nCOPY package.json package-lock.json ./\n# Install Node modules\nRUN npm install\n\n# Copy over rest of the project files\nCOPY . .\n\nRUN npm run build\n\n# Expose port\nENV PORT 5050\nEXPOSE 5050\n\n# Run `yarn dev` and set the host to 0.0.0.0 so we can access the web app from outside\nCMD ["npm", "run", "dev"]\n
Run Code Online (Sandbox Code Playgroud)\n这就是我构建它的方式:\ndocker build -t sveltekit:node --network=host .
这就是我运行它的方式:\ndocker run -d -p 5050:5050 --name sveltekit-app sveltekit:node
这是运行的输出docker ps
:
a9e241b09fd3 \n\nIMAGE \nsveltekit:node\n\nCOMMAND \n"docker-entrypoint.s\xe2\x80\xa6" \n\nCREATED \nAbout a minute ago \n\nSTATUS\nUp About a minute \n\nPORTS \n0.0.0.0:5050->5050/tcp \n\nNAMES\nsveltekit-app\n
Run Code Online (Sandbox Code Playgroud)\n我缺少什么?
\n更新
\n容器日志
\n2022-11-30 19:09:18 \n2022-11-30 19:09:18 > dundermifflin-ui@0.0.1 start\n2022-11-30 19:09:18 > export PORT=8080 && node ./build\n2022-11-30 19:09:18 \n2022-11-30 19:09:18 Listening on 0.0.0.0:8080\n
Run Code Online (Sandbox Code Playgroud)\n为什么它监听8080端口?我将我的更新package.json
为:
"dev": "vite dev --port=5050"
这意味着我正在强制使用端口 5050,不是吗?
\n您的容器没有运行 Web 服务器来为您的文件提供服务。
由于您只想提供静态文件,节点http-server可能会这样做。
尝试在你的 dockerfile 中的某个地方运行它..
npm install --global http-server && http-server ./app -p 5050
编辑:
Sveltekit 似乎运行@sveltejs/adapter-node来提供文件。
归档时间: |
|
查看次数: |
1244 次 |
最近记录: |