- 群晖 DS1821+ 搭载的 Docker 环境
- DockerHub 的 Gitlab(11.11.8)
- DockerHub 的 Gitlab-runner(13.11.0, Ubuntu)
https://www.cnblogs.com/sanduzxcvbnm/p/13724671.html
sudo docker pull gitlab/gitlab-runner:latest
从群晖 docker 中拉镜像-
在 docker 中绑定卷:
: /etc/gitlab-runner - : /var/run/docker.sock
- <宿主机需要处理的文件路径> :
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register
群晖 shell 中注册 runner
# gitlab-runner register
Please enter the gitlab-ci coordinator URL:
# 示例:http://gitlab.alibaba-inc.com/ci
Please enter the gitlab-ci token for this runner:
# xxxxxx(在 project 页的 specifid runner 获得 token)
Please enter the gitlab-ci description for this runner:
# 示例:qd_api_runner
Please enter the gitlab-ci tags for this runner (comma separated):
# 示例:deploy-docsify(注意要和ci.yml中的tags相同)
Whether to run untagged builds [true/false]:
# true
Please enter the executor: docker, parallels, shell, kubernetes, docker-ssh, ssh, virtualbox, docker+machine, docker-ssh+machine:
# shell (由于个人需求是操作宿主机文件,所以选择 shell, SSH 也可以)
想要的功能是利用 runner,将 repo commit 中的文件复制到另一个宿主机目录。为此,需要将目标宿主机目录映射到 runner 内部(上文「绑定卷」的第三条),之后,在 repo 根目录下的 .gitlab-ci.yml
文件中写下如下配置文件:
deploy:
stage: deploy
script:
- pwd
- ls -al docs
- ls -al /home/dest-folder/docs
- cp docs/README.md /home/dest-folder/docs/.
tags:
- deploy-docsify
完成。这个活儿主要是要把 runner 容器运行 shell 命令的层次关系搞懂即可。
Comments