简体   繁体   English

Dockerfile不会以具有sudo权限的用户身份运行脚本

[英]Dockerfile won't run script as user with sudo rights

I have this Docker file... 我有这个Docker文件...

FROM ubuntu:14.04 MAINTAINER Sindhu S sindhu@alum.hackerschool.org
# RUN apt-get update && apt-get -y install sudo wget bash git && rm -rf /var/cache/apt-get/archives/*
RUN adduser --disabled-password --gecos "" scrollback  
RUN adduser scrollback sudo  
RUN echo 'scrollback ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers RUN mkdir -p /home/scrollback && chown -R scrollback:scrollback /home/scrollback
WORKDIR /home/scrollback/ 
ADD https://raw.githubusercontent.com/sindhus/scrollback/install-script/tools/install.sh /home/scrollback/install.sh 
RUN chown scrollback:scrollback install.sh
RUN chmod +x install.sh
USER scrollback RUN ["/bin/bash", "-c", "/home/scrollback/install.sh"]

As you can see its supposed to run the install.sh as scrollback user (this user has sudo rights). 如您所见,它应该以滚动用户(该用户具有sudo权限)运行install.sh。 Basically the script shouldn't run as root but should run as user with sudo rights because there are some system files we need to modify. 基本上,脚本不应以root用户身份运行,而应以具有sudo权限的用户身份运行,因为我们需要修改某些系统文件。

I have tried with: 我尝试过:

RUN ["/bin/bash", "-c", "sudo touch /etc/apt/sources.list.d/pgdg.list"]

and this works! 这有效!

Yet when I have this line: 但是当我有这条线时:

RUN ["/bin/bash", "-c", "/home/scrollback/install.sh"]

in the script there is a line: 在脚本中有一行:

$(sudo echo $apt_source > /etc/apt/sources.list.d/pgdg.list)

and I get... 我得到...

Adding Postgres' deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main source to your software sources list (need root user rights).. ./install.sh: line 136: /etc/apt/sources.list.d/pgdg.list: Permission denied

How can I fix this? 我怎样才能解决这个问题?

It is not a good practice using sudo inside a bash script. 在bash脚本中使用sudo并不是一个好习惯。 Instead use the command directly and run your script with sudo . 而是直接使用命令并使用sudo运行脚本。 Thus, your script (and the programs launched inside) will be launched with root privileges. 因此,您的脚本(和内部启动的程序)将以root特权启动。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM