You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte应用本地正常运行但AWS Lightsail部署失败问题排查

Docker化Svelte应用部署AWS Lightsail失败问题

我有一个Docker化的Svelte应用,本地运行完全正常,但部署到AWS Lightsail时遇到问题,以下是已执行的操作:

错误信息

Lightsail错误信息

日志

[3/Jul/2024:08:42:00] [deployment:1] Creating your deployment
[3/Jul/2024:08:42:13] exec /usr/local/bin/docker-entrypoint.sh: exec format error
[3/Jul/2024:08:43:02] [deployment:1] Started 1 new node
[3/Jul/2024:08:43:18] exec /usr/local/bin/docker-entrypoint.sh: exec format error
[3/Jul/2024:08:44:13] [deployment:1] Started 1 new node
[3/Jul/2024:08:44:22] exec /usr/local/bin/docker-entrypoint.sh: exec format error
[3/Jul/2024:08:45:27] [deployment:1] Started 1 new node
[3/Jul/2024:08:45:44] exec /usr/local/bin/docker-entrypoint.sh: exec format error
[3/Jul/2024:08:46:02] [deployment:1] Canceled

Lightsail容器配置

  • 创建了Lightsail容器服务
  • 添加容器详情:
    • 容器名称:frontend
    • 从ECR拉取镜像
  • 将PUBLIC ENDPOINT设置为使用端口:3000

Lightsail容器配置


Dockerfile

FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build
RUN npm prune --production

FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/build build/
COPY --from=builder /app/node_modules node_modules/
COPY package.json .
EXPOSE 3000 # <--- 我认为这样可行
ENV NODE_ENV=production
CMD [ "node", "build" ]

Docker Desktop配置

本地运行Docker镜像无任何问题:

  • 可通过localhost:3000访问
  • 若将端口改为:80,也可通过localhost访问

Docker Desktop配置


Docker Desktop使用tcp协议,曾以为这是问题原因,但无法添加:3000 tcp作为Public Endpoint。

更新

测试了未做任何代码修改的SvelteKit骨架项目,参考SvelteKit Dockerfile配置示例,且未在Lightsail上设置任何环境变量,问题依旧。

内容的提问来源于stack exchange,提问作者kawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 15:53:22