• 本示例以一个github上的开源项目为例
  • 首先创建流水线,参考:创建流水线,之后按照下面的步骤配置执行流水线

一、配置【代码获取】

详细配置参考:代码获取

二、删除【代码编译】

  • 代码将在镜像构建的过程中编译,不需要【代码编译】步骤

三、配置【镜像构建】

  • 镜像类型
    选择【自定义】
  • 基础镜像仓库
    默认
  • 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"]

  • 镜像名称
    默认
  • 镜像版本号
    默认

详细配置参考:镜像构建

四、配置【镜像同步】

  • 源镜像
    选择【镜像构建】步骤的镜像

  • 源镜像仓库
    默认
  • 目标镜像仓库
    默认
  • 镜像保留个数
    默认

详细配置参考:镜像同步

五、点击【执行流水线】

  • 开始执行后页面会展示日志

六、完成

  • 执行完成后,日志会显示”xxxx已部署至资源xxxx”

作者:陈晓东  创建时间:2021-05-31 20:17
最后编辑:陈晓东  更新时间:2026-03-04 17:23