分类
docker gitlab 运维

Gitlab Docker部署修复权限

今天在日常备份维护gitlab时,发现gitlab输出的日志中包含一些常用的维护命令:

Thank you for using GitLab Docker Image!
Current version: gitlab-ee=15.1.0-ee.0
Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
And restart this container to reload settings.
To do it use docker exec:
  docker exec -it gitlab editor /etc/gitlab/gitlab.rb
  docker restart gitlab
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
If this container fails to start due to permission problems try to fix it by executing:
  docker exec -it gitlab update-permissions
  docker restart gitlab
Cleaning stale PIDs & sockets
Preparing services...
Starting services...
Configuring GitLab...
/opt/gitlab/embedded/bin/runsvdir-start: line 24: ulimit: pending signals: cannot modify limit: Operation not permitted
/opt/gitlab/embedded/bin/runsvdir-start: line 37: /proc/sys/fs/file-max: Read-only file system

其中有两组关键命令示例:

docker exec -it gitlab editor /etc/gitlab/gitlab.rb
docker restart gitlab

上面是编辑gitlab配置文件gitlab.rb的一些配置

docker exec -it gitlab update-permissions
docker restart gitlab

上面是进入gitlab容器后,使用容器的root用户来修复文件权限用的

分类
git shell

给github.com加速

笔者作为程序员,经常使用github这个全球最大同性交友网站探讨人生和技术。

使用ssh推拉代码变成了令人头疼的事情了

git pull,git push这类命令默认是不能走proxy的,如何让它走一下proxy

经过搜索引擎摸索一番后,如下方法可以,需要依赖命令corkscrew

修改当前电脑用户的配置文件 ~/.ssh/config

Host github.com
        User git
        Hostname github.com
        Port    22
        Proxycommand    /usr/local/bin/corkscrew 127.0.0.1 7890 %h %p

这下速度刷刷的

分类
PHP ThinkPHP 编程

Thinkphp6 hasManyThrough

通常来说,我们在写业务代码时候,会用到模型之间的关联,来代替join,提升查询性能,复杂一点的查询性能不太容易记住如何书写。

在Thinphp6框架中,记录一下经过中间表的多对多关系书写顺序

Apple表通过 M表(枢纽) 来查询到Type表

Apple表中的关联关系这么写

public function types()
{
    return $this->hasManyThrough(
        Type::class, // model 目标表
        M::class, // through 枢纽表
        'm.apple_id', // foreignKey 枢纽表对于本表的外键
        'type.id',// throughKey目标表的对于枢纽表关联字段
        'apple.id', // localKey本表对于枢纽表的关联字段
        'm.type_id',// throughPk 枢纽表对于目标表的关联字段
    );
}
分类
shell 运维

linux shell 字符串数组遍历

# 定义一个数组
arrayWen=(Ada Boy Candy Dog Egg Fire)
# 循环遍历
for var in ${arrayWen[@]};
do
    echo $var
done

将此内容保存test.sh文件中,使用命令执行一下试试

bash test.sh
分类
硬件 计算机

计算机各种接口大全

分类
nginx 运维

Nginx反代场景,记录客户端真实IP地址到访问日志中

http {
......
log_format proxy '$remote_addr - $remote_port - "$http_x_forwarded_for" - $request_time - $upstream_response_time - "$sent_http_S" - "$sent_http_RID" - "$remote_user" - [$time_iso8601] - "$request" - $status - $body_bytes_sent - "$http_referer" - "$http_user_agent" - "$upstream_addr" - "$scheme" - "$http_host"';
......
}
server{
......
access_log  /home/wwwlogs/access.log proxy;
}