dokuwiki php7,DokuWiki容器化实践

# app.sh是以root用户运行的,php程序以nobody用户运行,因此git相关命令也应用nobody运行,否则会有权限问题

# 需要设置HOME 参见 https://stackoverflow.com/a/27151021 解决 unable to access '/root/.config/git/attributes' 报错

function gitCmd() {

su - nobody -s /bin/sh -c "HOME=/home/nobody;cd $DATADIR;git $1"

}

# 设置SSH KEY

function sshKey() {

SSHDIR=/home/nobody/.ssh/

echo "SSHDIR: $SSHDIR"

[ ! -d $SSHDIR ] && mkdir -p $SSHDIR

[ -f "$APP_CONFIG_PATH/ID_RSA" ] && cp $APP_CONFIG_PATH/ID_RSA $SSHDIR/id_rsa

[ -f "$APP_CONFIG_PATH/ID_RSA_PUB" ] && cp $APP_CONFIG_PATH/ID_RSA_PUB $SSHDIR/id_rsa.pub

echo "I am `whoami`"

echo "StrictHostKeyChecking no" >> $SSHDIR/config

chown -R nobody.nobody /home/nobody

}

# gitbacked设置,忽略cache tmp目录

# 将git作为默认存储,容器更新后拉取远程仓库

# 为了提高git pull速度,需要有持久化存储。如果用hostPath,需要固定机器

function stepPluginGitbacked() {

sshKey

# 设置默认值

setConf plugin gitbacked ignorePaths "cache,tmp,index,locks"

setConf plugin gitbacked periodicPull "1"

setConf plugin gitbacked pushAfterCommit "1"

# 需要设置HOME 参见 https://stackoverflow.com/a/27151021 解决 unable to access '/root/.config/git/attributes' 报错

export HOME=/home/nobody

# 需要设置权限

chown -R nobody.nobody $DATADIR

cd $DATADIR

isEmpty=`ls $DATADIR |wc -l`

[ $isEmpty -eq 0 ] && gitCmd "clone $GITREPO $DATADIR"

if [ ! -d $DATADIR/.git ];then

gitCmd init

gitCmd "remote add origin $GITREPO"

fi

# 设置

gitCmd 'config user.name "nobody"'

gitCmd 'config user.email "dokuwiki@k8s.cluster"'

gitCmd "pull origin master"

for item in attic cache index locks media media_attic media_meta meta pages tmp; do

[ ! -d $DATADIR/$item ] && mkdir $DATADIR/$item

done

for item in cache tmp index locks;do

grep "$item/" .gitignore|| echo "$item/" >> .gitignore

done

chown -R nobody.nobody $DATADIR

changes=`git status --short |wc -l`

if [ $changes -gt 0 ];then

gitCmd "add -A"

gitCmd 'commit -m "commit"'

gitCmd "push -u origin master"

fi

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值