【笔记】Gitlab-runner之部署应用软件依赖安装指南
文章目录
1. 故事背景
为了管理方便,只在一台机器上安装Gitlab-runner
,同时注册多个Executor
。目前我用的是shell
和docker
。
我需要部署的语言环境有php
、nodejs
、docker
、java
,需要的软件清单如下:
- nvm
- nodejs
- nodejs依赖库
- docker
- php-fpm
- composer
- jdk
- maven
2. 提前准备
- 本次试验是在
CentOS 7.4 64位
系统
3. 软件安装
3.1 nvm & node & 依赖库
以下操作请使用
gitlab-runner
用户进行
安装nvm
安装
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
手动生效环境变量
source ~/.bashrc
查找你想装的版本
nvm list-remote
安装nodejs
nvm install v8.9.4
安装依赖库
npm i -g cnpm apidoc
3.2 docker
以下操作我使用了
root
用户进行
删除旧版本的docker
(新的名字是docker-ce
),不管有没有,直接执行
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安装依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
加stable yum源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker-ce
sudo yum install -y docker-ce
启动docker
sudo systemctl start docker
3.3 php & composer
以下操作我使用了
root
用户进行
安装php
安装epel-release
sudo yum -y install epel-release
先卸载php
sudo yum -y remove php* php7*
由于linux的yum源不存在php7.x,所以我们要更改yum源
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum安装php72w和各种拓展,选自己需要的即可 (扩展理论上不装也可以,composer只依赖php)
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
安装composer
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
替换国内镜像,官方参考传送门
composer config -g repo.packagist composer https://packagist.phpcomposer.com
3.4 jdk & maven
// TODO
4. 软件设置
4.1 gitlab-runner登录docker私有镜像仓库
如果你需要push镜像到私有仓库(如阿里云镜像), 以下操作请使用
gitlab-runner
用户进行
# 登录
docker login --username={your-username} {your-docker-repo-url}
# 例子
docker login --username=afanticar registry-vpc.cn-hangzhou.aliyuncs.com
注意!正常情况下,gitlab-runner是不可以操作docker的!
一般会出现类似情况
Got permission denied while trying to connect to the Docker daemon socket
这是没权限的意思,只需要把用户gitlab-runner加入docker组即可
sudo usermod -a -G docker gitlab-runner
如果提示你没有
docker
这个组,那说明你安装的老版本的docker
,我的办法是更新新版本
5. 题外话
5.1 docker安装错了测试版
第一次更新docker版本的时候,看官方文档不认真,把以下这个可选项也执行了
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test
这个开启后,其实会安装到测试版的docker,但我更新的是生产环境,当然不能用测试版。
我是在安装完成后,发现他的名字居然含beta
字样,这让我很不心安,于是打算重新安装稳定版。
于是执行
# 卸载
yum remove -y docker-ce
# 关闭测试源
sudo yum-config-manager --disable docker-ce-edge
sudo yum-config-manager --disable docker-ce-test
# 重新安装
yum install -y docker-ce
但是…却发生以下的报错截选
Transaction check error:
file /usr/bin/docker from install of docker-ce-18.06.1.ce-3.el7.x86_64 conflicts with file from package docker-ce-cli-0:18.09.0.ce-1.1.beta1.el7.x86_64
……….
这个根本不懂,google一条结果都没有…删掉部分继续google,折腾好久没效果。 然后无意中看到别人删除yum库的时候,会指定具体的版本,于是乎,我做了以下有效的操作。
# 卸载
yum remove docker-ce-cli-0:18.09.0.ce-1.1.beta1.el7.x86_64
# 重新安装
yum install -y docker-ce
记得启动
sudo systemctl start docker
就这样成功了,记录一下经历,虽然意义不大。
文章作者 xifan
上次更新 2018-09-16