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

Golang Telegram Bot项目Railway容器构建失败求助

[stage-0 8/8] RUN --mount=type=cache,id=s/e3978b7a-2c8f-410f-8252-e31015239006-/root/cache/go-build,target=/root/.cache/go-build go build -o out:

#14 0.370 no Go files in /app

Dockerfile:23

# build phase
COPY . /app/.
>>> RUN --mount=type=cache,id=s/e3978b7a-2c8f-410f-8252-e31015239006-/root/cache/go-build,target=/root/.cache/go-build go build -o out

25 |

ERROR: failed to solve: process "/bin/bash -ol pipefail -c go build -o out" did not complete successfully: exit code: 1

Error: Docker build failed

## 解决办法
- **修改构建命令,指定入口路径**:Railway默认执行`go build -o out`,但你的主入口在`cmd/bot`子目录,需要在项目的Railway环境变量中添加`NIXPACKS_BUILD_CMD`,值设为`go build -o out ./cmd/bot`,让Go编译器定位到正确的入口文件。
- **确认go.mod位置**:确保`go.mod`文件在项目根目录,Railway的构建流程以根目录为工作目录,如果`go.mod`不在根目录,会导致Go模块识别异常。
- **自定义Dockerfile(可选)**:如果Nixpacks自动生成的构建逻辑不适用,可以手动编写Dockerfile替换默认流程:
```dockerfile
# 构建阶段
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o telegram-bot ./cmd/bot

# 运行阶段
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/telegram-bot .
CMD ["./telegram-bot"]

将上述内容保存为项目根目录的Dockerfile,然后在Railway部署设置中选择使用自定义Dockerfile即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:16:13