简介
- 本示例以一个github上的开源项目为例
- github地址:https://github.com/mlogclub/bbs-go.git
- 分支:master
- 该项目使用了golang,vue,tyepscript等语言,是一个混合项目
编译流程
一、配置【代码来源】
- 【代码来源】选择【Git】
- 【Git类型】选择【GitHub】或【其他】
- 【git地址】填写:https://github.com/mlogclub/bbs-go.git
- 【分支/标签/版本号】选择【分支】,填写:master

二、配置【编译环境】
- 【编译环境】选择【自定义】
- 【编译脚本】无需填写

三、配置【镜像构建】
- 【镜像类型】选择【自定义】
- 【基础镜像仓库】使用默认即可,如果没有那么需先配置【镜像仓库】,配置方法参考:创建镜像仓库
- 【Dockerfile】填写
FROM golang:1.24 AS server_builder
ENV APP_HOME=/code/bbs-go/server
WORKDIR "$APP_HOME"
COPY bbs-go/server ./
RUN go env -w GOPROXY=https://goproxy.cn,direct
RUN go mod download
RUN go get ./...
RUN CGO_ENABLED=0 go build -v -o bbs-go main.go && chmod +x bbs-go
# site builder
FROM node:20.14.0 AS site_builder
ENV APP_HOME=/code/bbs-go/site
WORKDIR "$APP_HOME"
COPY bbs-go/site ./
RUN npm install -g pnpm --registry=https://registry.npmmirror.com
RUN pnpm install --registry=https://registry.npmmirror.com
RUN npm install -g pnpm
RUN pnpm install
RUN pnpm build
# admin builder
FROM node:20.14.0 AS admin_builder
ENV APP_HOME=/code/bbs-go/admin
WORKDIR "$APP_HOME"
COPY bbs-go/admin ./
RUN npm install -g pnpm --registry=https://registry.npmmirror.com
RUN pnpm install --registry=https://registry.npmmirror.com
RUN npm install -g pnpm
RUN pnpm install
RUN pnpm build
# run
FROM node:20.14.0
ENV APP_HOME=/app/bbs-go
WORKDIR "$APP_HOME"
COPY --from=server_builder /code/bbs-go/server/bbs-go ./server/bbs-go
COPY --from=server_builder /code/bbs-go/server/migrations ./server/migrations
COPY --from=server_builder /code/bbs-go/server/locales ./server/locales
COPY --from=site_builder /code/bbs-go/site/.output ./site/.output
COPY --from=site_builder /code/bbs-go/site/node_modules ./site/node_modules
COPY --from=admin_builder /code/bbs-go/admin/dist ./server/admin
COPY bbs-go/start.sh ${APP_HOME}/start.sh
RUN chmod +x ${APP_HOME}/start.sh
EXPOSE 8082 3000
CMD ["./start.sh"]
- 【镜像名称】使用默认值
- 【镜像版本号】使用默认值

四、配置【镜像同步】

五、点击【开始编译】

- 页面将自动跳转至【编译记录】页面,并展示【编译日志】

六、编译完成
- 编译完成后,【编译日志】中会显示“执行结束”的信息

- 在【镜像版本】中可以看到编译完成的镜像版本信息

作者:陈晓东 创建时间:2021-06-01 20:37
最后编辑:陈晓东 更新时间:2026-01-30 18:08
最后编辑:陈晓东 更新时间:2026-01-30 18:08