有机猴灬残暴SamaLife · Code · Explore
返回文章
ARTICLE

用 Docker 搭建 GitLab 与自动化部署

从安装 GitLab 到 Runner 与流水线,把旧博客里的部署系列整理成一篇可执行的实践记录。

准备 GitLab 服务

旧文章使用 Ubuntu 22.04。先安装 Docker,然后用独立目录挂载配置、日志和数据,避免容器升级后内容丢失。

CODE
curl -fsSL https://get.docker.com | bash
docker run -d --name gitlab --restart always \
  -p 8443:443 -p 8090:80 -p 8022:22 \
  -v /usr/local/gitlab/etc:/etc/gitlab \
  -v /usr/local/gitlab/log:/var/log/gitlab \
  -v /usr/local/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

配置访问地址

进入容器修改 gitlab.rb,把 external_url 与 SSH 端口设置成宿主机真正可访问的地址。配置完成后执行 gitlab-ctl reconfigure,再重启服务。

接入 Runner

Runner 与 GitLab 服务分开运行更容易升级。注册时需要 GitLab URL、令牌、执行器和标签。流水线任务用标签选择 Runner,避免构建任务跑到不具备 Docker 环境的机器上。

CODE
stages: [install, build, deploy]
cache:
  paths: [.pnpm-store]
build:
  stage: build
  script:
    - corepack enable
    - pnpm install --frozen-lockfile
    - pnpm build
deploy:
  stage: deploy
  only: [main]
  script:
    - ./scripts/deploy.sh

上线前检查

生产密钥放到 CI Variables,不要提交到仓库;部署账号只开放目标目录权限;构建产物要保留版本;发布失败时应能回滚到上一版。这些比“流水线能跑通”更重要。