Azure Pipeline在Ubuntu 18.04容器安装sudo遇权限拒绝问题求助
解决Azure Pipeline中Ubuntu 18.04容器安装sudo权限拒绝问题
问题原因
你遇到的权限拒绝错误,是因为执行apt-get命令的当前用户并非root,而修改系统软件包必须拥有root权限。虽然ubuntu:18.04镜像默认用户是root,但Azure Pipeline在运行容器任务时,可能默认使用了非root身份执行步骤,导致无法获取dpkg锁文件。
解决方法
方法1:在script步骤中以root身份执行命令
容器内默认存在root用户,你可以通过su切换到root后执行安装命令,同时建议先更新软件源索引(避免包找不到的问题):
steps: - script: | su - root -c "apt-get update && apt-get install -y sudo" displayName: 'Install sudo'
方法2:配置容器以root用户启动
直接在container配置中指定以root用户运行容器,后续所有步骤都会以root身份执行,无需每次切换:
pool: vmImage: ubuntu-latest container: image: ubuntu:18.04 options: --user root dependsOn: ImpactedProjects condition: eq(dependencies.ImpactedProjects.outputs['ImpactAnalysis.Project.Loyalty.QueryCachePopulator.AzureFunction.BddTests'], 'True') steps: - script: | apt-get update && apt-get install -y sudo displayName: 'Install sudo'
额外提示
安装sudo后,后续需要root权限的命令就可以通过sudo前缀执行。另外,apt-get install建议加上-y参数,避免交互等待确认。
内容的提问来源于stack exchange,提问作者J Nguyen
相关产品推荐
相关产品推荐

