Jenkins ECS 和 EFS 出错
Posted
技术标签:
【中文标题】Jenkins ECS 和 EFS 出错【英文标题】:Error with Jenkins ECS and EFS 【发布时间】:2017-10-02 21:32:24 【问题描述】:我正在尝试使用 Jenkins 部署到带有 EFS 的 ECS。 (/var/jenkins_home 已挂载)
看起来一切都很好,除了当我部署服务时,我在日志中收到以下错误:
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
No newer events found at the moment. Retry.
有没有办法解决这个问题,所以我对/var/jenkins_home
有足够的权限?
【问题讨论】:
【参考方案1】:对我有用的是创建 efs 的访问点: https://github.com/aws-samples/serverless-jenkins-on-aws-fargate/blob/main/modules/jenkins_platform/efs.tf
这是我基于上述来源的简化解决方案:
resource "aws_efs_file_system" "jenkins"
creation_token = "jenkins"
encrypted = true
lifecycle_policy
transition_to_ia = "AFTER_30_DAYS"
tags =
Name = "jenkins"
resource "aws_efs_access_point" this
file_system_id = aws_efs_file_system.jenkins.id
posix_user
gid = 0
uid = 0
root_directory
path = "/"
creation_info
owner_gid = 1000 # jenkins
owner_uid = 1000 # jenkins
permissions = "755"
tags =
Name = "root"
理想情况下,您想使用此模块或将其分叉并制作您自己的模块。
【讨论】:
【参考方案2】:只是添加@jonathan 回答创建一个新的 docker 文件,它会像这样覆盖 jenkins 官方图像
from jenkins/jenkins
USER root
RUN chown -R 1000 /var
创建新的 docker 映像 docker build .
这将创建一个新的 docker 映像,该映像不再受到 EFS
权限问题的影响。
【讨论】:
【参考方案3】:是的,这有点疯狂,但一个简单的解决方案就是在您的 efs 文件位置运行 chown 命令。例如,如果 '/efs' 是您的 EFS 挂载,则简单运行 sudo chown 1000 efs/
应该在之后就可以正常工作
【讨论】:
以上是关于Jenkins ECS 和 EFS 出错的主要内容,如果未能解决你的问题,请参考以下文章