【gitlab-runner/docker部署runner/CICD】
介绍docker-compose 部署方式
docker-compose文件
###runner
gitlab-runner:
image: gitlab-runner
build:
context: ./gitlab-runner
#image: gitlab/gitlab-runner:latest
container_name: gitlab-runner
#environment:
#- CI_SERVER_URL=${GITLAB_CI_SERVER_URL}
#- REGISTRATION_TOKEN=${GITLAB_RUNNER_REGISTRATION_TOKEN}
#- RUNNER_NAME=${GITLAB_RUNNER_NAME}-runner
#- REGISTER_NON_INTERACTIVE=${GITLAB_REGISTER_NON_INTERACTIVE}
#- RUNNER_EXECUTOR=shell
volumes:
- ./gitlab-runner/deploy/publish.sh:/var/www/gitlab-runner/deploy/publish.sh:rw
- ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock:rw
restart: always
dockerfile文件内容
准备一个shell脚本
#!/bin/bash
DEPLOY_PATH=项目地址(docker方式的话就是docker内映射的地址)
GIT_URL=ssh://*********/gitlab-instance-3b876bb8/aa.git
NOW_BRANCH=dev
if [ ! -e $DEPLOY_PATH ];then
mkdir -p $DEPLOY_PATH
chown -hR gitlab-runner:gitlab-runner $DEPLOY_PATH
echo "OK"
fi
cd $DEPLOY_PATH
if [ -d "$DEPLOY_PATH/.git" ];then
echo --- Clean Workspace ---
git clean -f
git reset --hard
git remote update origin -p
git checkout $NOW_BRANCH
echo --- 拉取 $NOW_BRANCH 分支 ---
git pull origin $NOW_BRANCH
echo --- OK ---
else
git init
git remote add origin $GIT_URL
git fetch
git remote update origin -p
git checkout $NOW_BRANCH
echo --- OK ---
fi
docker-compose up -d gitlab-runner启动runner
注册runner
gitlab-runner register url和token从gitlab项目中获取 tags要项目yml文件中保持一致 执行方式选择shell
配置git密钥
在docker容器中生成git密钥
项目yml配置示例
stages:
- deploy
dev_api:
stage: deploy
tags:
- dev-test
only:
- dev
script:
- whoami
- bash /var/www/gitlab-runner/deploy/publish.sh
product_api:
stage: deploy
tags:
- product_api
only:
- master
script:
- whoami
- bash /var/www/gitlab-runner/deploy/publish.sh
可以发布测试了
上一篇:
IDEA上Java项目控制台中文乱码
