GAE 应用 "Push-to-deploy" 无法用于 wordpress git

GAE app "Push-to-deploy" failed for wordpress git

我目前正在尝试从我的 bitbucket wordpress 存储库设置 GAE 推送部署。 似乎在 GCE 上设置 jenkins 所需的所有步骤都已完成,但构建失败 OSError: [Errno 13] Permission denied: '/root/.config'

我认为 shell 命令:gcloud --project=projectjp01 preview app deploy . 添加到构建步骤导致了问题。 (看起来 jenkins 用户无法访问根文件夹或日志文件夹)

有人可以帮我成功完成 GAE 的 push-to-depoly 过程吗? 任何帮助将不胜感激。

仅供参考,以下是构建过程的控制台消息:

Started by user User Name Building in workspace /opt/bitnami/apps/jenkins/jenkins_home/jobs/firstjenkins/workspace

/opt/bitnami/git/bin/git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository /opt/bitnami/git/bin/git config remote.origin.url https://source.developers.google.com/p/projectjp01 # timeout=10 Fetching upstream changes from source.developers.google.com/p/projectname /opt/bitnami/git/bin/git --version # timeout=10 using .gitcredentials to set credentials /opt/bitnami/git/bin/git config --local credential.helper store --file=/opt/bitnami/apache-tomcat/temp/git2753293187622835876.credentials

timeout=10

/opt/bitnami/git/bin/git fetch --tags --progress +refs/heads/:refs/remotes/origin/ /opt/bitnami/git/bin/git config --local --remove-section credential # timeout=10 /opt/bitnami/git/bin/git rev-parse refs/remotes/origin/master^{commit} # timeout=10 /opt/bitnami/git/bin/git rev-parse refs/remotes/origin/origin/master^{commit} > # timeout=10 Checking out Revision 2297db6db06f19198dd3097e8db6b72687e8d433 (refs/remotes/origin/master) /opt/bitnami/git/bin/git config core.sparsecheckout # timeout=10 /opt/bitnami/git/bin/git checkout -f 2297db6db06f19198dd3097e8db6b72687e8d433 /opt/bitnami/git/bin/git rev-list 2297db6db06f19198dd3097e8db6b72687e8d433 # timeout=10 [workspace] $ /bin/sh -xe /opt/bitnami/apache-tomcat/temp/hudson1649832068994489242.sh + gcloud --project=projectname preview app deploy . Traceback (most recent call last): File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 177, in _cli = CreateCLI() File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 175, in CreateCLI return loader.Generate() File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 236, in Generate return self.__LoadCLIFromGroups() File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 280, in __LoadCLIFromGroups cli = self.__MakeCLI(top_group) File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 442, in __MakeCLI log.AddFileLogging(self.__logs_dir) File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 532, in AddFileLogging _log_manager.AddLogsDir(logs_dir=logs_dir) File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 316, in AddLogsDir log_file = self._SetupLogsDir(logs_dir) File "/usr/local/bin/../share/google/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 393, in _SetupLogsDir os.makedirs(day_dir_path) File "/usr/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/usr/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/usr/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File "/usr/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/root/.config' Build step 'Execute shell' marked build as failure Finished: FAILURE

我自己发现的。所有的问题都出在权限设置上。

gcloud 应该 运行 作为 sudo 但 tomcat (jenkins) 默认配置为禁用 sudo。 所以我ssh到jenkins所在的GCE服务器运行ning,打开(创建)文件:

sudo vi /etc/sudoers.d/tomcat

然后放这一行:

tomcat ALL=(ALL) NOPASSWD: ALL

就是这样。我现在可以毫无问题地构建和部署。