创建一个Dockerfile
安装我们已经创建(每个我先前的职位于节点框架在这里):
# Install dependencies and nodejs
RUN apt-get update
RUN apt-get install -y python-software-properties python g++ make
RUN add-apt-repository ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get install -y nodejs
# Install git
RUN apt-get install -y git
# Bundle app source
ADD . /src
# Create a nonroot user, and switch to it
RUN /usr/sbin/useradd --create-home --home-dir /usr/local/nonroot --shell /bin/bash nonroot
RUN /usr/sbin/adduser nonroot sudo
RUN chown -R nonroot /usr/local/
RUN chown -R nonroot /usr/lib/
RUN chown -R nonroot /usr/bin/
RUN chown -R nonroot /src
USER nonroot
# Install app source
RUN cd /src; npm install
问题是npm期望不以root身份运行-是否有办法链接一系列sudo useradd
命令以创建具有sudo特权的临时用户,然后可以切换到该用户USER
来运行npm install
?
编辑:更新了上面的内容,现在成功创建用户并进入npm install
线路并窒息之后,出现了此问题:
Error: Attempt to unlock javascript-brunch@1.7.1, which hasn't been locked
at unlock (/usr/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/lib/node_modules/npm/lib/cache.js:655:20
at /usr/lib/node_modules/npm/lib/cache.js:1282:20
at afterMkdir (/usr/lib/node_modules/npm/lib/cache.js:1013:14)
at /usr/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
at Object.oncomplete (fs.js:107:15)
If you need help, you may report this *entire* log,
including the npm and node versions, at:
<http://github.com/npm/npm/issues>
要解决“尝试解锁”问题,请尝试首先通过发出以下命令来清理npm缓存:
npm cache clean
之后,运行
npm install
是否可以从Dockerfile构建映像并使用单个命令运行它 有一个命令来构建Dockerfile,还有来运行映像。 有没有这两个命令的任何组合,使它更容易构建和运行只有一个命令?
我试图,我收到了这个错误 /bin/sh:1:sudo:未找到 这就是我的的样子: 当我尝试构建它时,会出现此错误<代码>docker构建-t jenkins
问题内容: 我正在尝试创建一个Dockerfile。我是Docker的新手。我正在创建此Dockerfile,它将在一个实例中启动Rabbitmq,ftp服务器和elasticsearch服务器。我已经创建了这样的文件: 我想知道我是否正确创建了Dockerfile。如果有人可以帮助我,那就太好了。另外,请告诉我如何继续添加Elasticsearch服务。提前致谢! 问题答案: 我应该如何创建一个
这是我的Dockerfile的内容。 当我运行Dockerfile来构建docker映像时,我得到以下错误: /bin/sh:1:sudo:未找到 你能帮我解决上面的错误吗?
我试图弄清楚如何使用Ansible(version2.0.2.0和python 2.7.3)创建一个名为“deployer”的用户,并能够使用该id登录服务器,然后进行“apt-get install”之类的操作。我的剧本是这样的: 运行这个playbook后,我可以以“deployer”(例如ssh deployer@myserver)的身份ssh进入机器,但是如果我运行sudo命令,它总是要求
问题内容: 尝试在Linux上没有SU权限的情况下安装/更新软件包时遇到错误。 解决问题的 简单 方法是execute ,但是我不确定这是否是一个好主意。 最好的方法是成为文件夹的所有者,正如我在StackOverflow的问题和博客文章中发现的那样。 我的问题是:为什么以SU身份运行不是一个好主意? 问题答案: 运行超级用户具有运行某些不可信代码作为超级用户的风险,其可以与你的整个系统潜在的混乱