内容简介:现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab、Aliyun镜像服务、Docker Swarm 轻松搭建自己的 Docker集群服务。首先我们修改一下端口号,把重新登录机器
现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab、Aliyun镜像服务、Docker Swarm 轻松搭建自己的 Docker 集群服务。
安装 Docker
curl -sSL https://get.daocloud.io/docker | sh 复制代码
搭建自己的Gitlab
安装Gitlab
首先我们修改一下端口号,把 sshd 服务的 22 端口改为 2222 ,让 gitlab 可以使用 22 端口。
$ vim /etc/ssh/sshd_config # 默认 Port 改为 2222 Port 2222 # 重启服务 $ systemctl restart sshd.service 复制代码
重新登录机器
ssh -p 2222 root@host 复制代码
安装 Gitlab
sudo docker run -d --hostname gitlab.xxx.cn \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest 复制代码
首次登录 Gitlab 会重置密码,用户名是 root 。
安装gitlab-runner
以 CentOS 为例
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash yum install gitlab-runner 复制代码
当然,可以用 curl https://setup.ius.io | sh 命令,更新为最新的 git 源,然后直接使用 yum 安装 git 和 gitlab-runner。
$ curl https://setup.ius.io | sh $ yum -y install git2u $ git version $ yum install gitlab-runner 复制代码
注册 gitlab-runner
$ gitlab-runner register --clone-url http://内网ip/ Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://gitlab.xxx.cc/ Please enter the gitlab-ci token for this runner: xxxxx Please enter the gitlab-ci description for this runner: xxx Please enter the gitlab-ci tags for this runner (comma separated): builder Please enter the executor: docker-ssh, shell, docker+machine, docker-ssh+machine, docker, parallels, ssh, virtualbox, kubernetes: shell 复制代码
初始化 Swarm 集群
登录另外一台机器,初始化集群
$ docker swarm init 复制代码
创建自定义 Overlay 网络
docker network create \ --driver overlay \ --subnet 10.0.0.0/24 \ --opt encrypted \ default-network 复制代码
加入集群
# 显示manager节点的TOKEN $ docker swarm join-token manager # 加入manager节点到集群 $ docker swarm join --token <token> ip:2377 # 显示worker节点的TOKEN $ docker swarm join-token worker # 加入worker节点到集群 $ docker swarm join --token <token> ip:2377 复制代码
然后配置发布用的 gitlab-runner
其他与 builder 一致,但是 tag 却不能一样。线上环境可以设置为 tags,测试环境设置为 test
安装 Portainer
docker service create \
--name portainer \
--publish 9000:9000 \
--replicas=1 \
--constraint 'node.role == manager' \
--mount type=volume,src=portainer_data,dst=/data \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer
复制代码
创建一个Demo项目
登录 Gitlab 创建一个 Demo 项目。并导入我们的项目 hyperf-skeleton
配置镜像仓库
我们直接使用阿里云的即可
首先创建一个命名空间 test_namespace,然后创建一个镜像仓库 demo,并使用本地仓库。
然后到我们直接打包用的服务器中,登录阿里云 Docker Registry
usermod -aG docker gitlab-runner su gitlab-runner docker login --username=your_name registry.cn-shanghai.aliyuncs.com 复制代码
修改我们项目里的 .gitlab-ci.yml
variables: PROJECT_NAME: demo REGISTRY_URL: registry.cn-shanghai.aliyuncs.com/test_namespace 复制代码
还有 deploy.test.yml,需要仔细对比以下文件哦。
version: '3.7'
services:
demo:
image: $REGISTRY_URL/$PROJECT_NAME:test
environment:
- "APP_PROJECT=demo"
- "APP_ENV=test"
ports:
- 9501:9501
deploy:
replicas: 1
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 5
update_config:
parallelism: 2
delay: 5s
order: start-first
networks:
- default-network
configs:
- source: demo_v1.0
target: /opt/www/.env
configs:
demo_v1.0:
external: true
networks:
default-network:
external: true
复制代码
然后在我们的 portainer 中,创建对应的 Config demo_v1.0。当然,以下参数需要根据实际情况调整,因为我们的Demo中,没有任何IO操作,所以填默认的即可。
APP_NAME=demo DB_DRIVER=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=hyperf DB_USERNAME=root DB_PASSWORD= DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_unicode_ci DB_PREFIX= REDIS_HOST=localhost REDIS_AUTH= REDIS_PORT=6379 REDIS_DB=0 复制代码
因为我们配置的 gitlab-ci.yml 会检测 test 分支和 tags,所以我们把修改的内容合并到test分支,然后推到gitlab上。
接下来我们就可以访问集群任意一台机器的 9501 端口。进行测试了
curl http://127.0.0.1:9501/ 复制代码
意外情况
fatal: git fetch-pack: expected shallow list
这种情况是 gitlab-runner 使用的 git 版本过低,更新 git 版本即可。
$ curl https://setup.ius.io | sh $ yum remove -y git $ yum -y install git2u $ git version # 重新安装 gitlab-runner 并重新注册 gitlab-runner $ yum install gitlab-runner 复制代码
如果本文档对你有什么帮助,就请我喝杯咖啡如何
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning ARKit for iPhone and iPad
Wallace Wang / Apress / 2018-11-5 / USD 39.99
Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!