简介

  • 本示例以一个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