[英]Dockerfile won't run script as user with sudo rights
我有这个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"]
如您所见,它应该以滚动用户(该用户具有sudo权限)运行install.sh。 基本上,脚本不应以root用户身份运行,而应以具有sudo权限的用户身份运行,因为我们需要修改某些系统文件。
我尝试过:
RUN ["/bin/bash", "-c", "sudo touch /etc/apt/sources.list.d/pgdg.list"]
这有效!
但是当我有这条线时:
RUN ["/bin/bash", "-c", "/home/scrollback/install.sh"]
在脚本中有一行:
$(sudo echo $apt_source > /etc/apt/sources.list.d/pgdg.list)
我得到...
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
我怎样才能解决这个问题?
在bash脚本中使用sudo
并不是一个好习惯。 而是直接使用命令并使用sudo
运行脚本。 因此,您的脚本(和内部启动的程序)将以root特权启动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.