首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在gitlab自动部署期间保留文件权限?

如何在gitlab自动部署期间保留文件权限?
EN

Stack Overflow用户
提问于 2018-11-19 17:01:50
回答 1查看 1.3K关注 0票数 0

我正在尝试自动将分支从gitlab 11.06部署到一个临时server.Both gitlab服务器,而临时服务器是centos 7.4

下面是.gitlab-ci.yml

代码语言:javascript
复制
stages:
  - deploy
deploy_staging:
  stage: deploy
  tags:
    - php
  script:
    /home/gitlab-runner/.local/bin/deploy.sh

deploy.sh如下:

代码语言:javascript
复制
#!/bin/bash
deploy_path="/var/www/html"
 cd $deploy_path
 git pull origin master

自动部署工作正常,但是文件的所有者和权限changed.For示例:

在自动部署之前:

drwxr-xr-x 2 apache webadmin 77 Nov 19 8:41 phpmailer

自动部署之后:

drwxrwxr-x 2 gitlab-runner gitlab-runner 77 Nov 19 10:11 phpmailer

我需要自动部署,我也需要保持文件允许。

如何在自动部署期间保留文件权限?谢谢您的任何解决方案!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-20 15:26:37

git pull似乎取代了文件(它创建了一个新文件并将其移动),而不是写入现有文件。因此,它无法保留所有权--新创建的文件是用进程所有权( gitlab-runner/gitlab-runner user/group )创建的。若要修复在不同用户下运行git pull的操作,请使用例如sudo。任一

代码语言:javascript
复制
sudo -u apache /home/gitlab-runner/.local/bin/deploy.sh

gitlab-ci.yml

代码语言:javascript
复制
sudo -u apache git pull origin master

deploy.sh里。请不要忘记,sudo要求输入密码,所以您必须使用配置它来运行没有密码的命令。

若要保留权限,请在运行umask 055之前在deploy.sh中设置git pull

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53379446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档