有些RUN命令在Docker上无法正常运行,但是将其放在容器中就可以正常运行。
2015-10-2 22:48:6
收藏:0
阅读:71
评论:2
我有一个Dockerfile用于一些与lua和torch相关的任务,并尝试使用luarocks安装一些rock。
FROM ubuntu:14.04
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN apt-get update -y
RUN apt-get install -y curl git
RUN curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
RUN git clone https://github.com/torch/distro.git ~/torch --recursive
RUN cd ~/torch; ./install.sh
RUN source ~/.bashrc
RUN luarocks install nngraph
RUN luarocks install optim
RUN luarocks install nn
RUN luarocks install cltorch
RUN luarocks install clnn
docker build运行良好,直到第一个luarocks调用: RUN luarocks install nngraph此时它停止并抛出错误:
/bin/sh: luarocks: command not found
如果我注释掉luarocks行,构建就可以正常运行。使用该镜像,我可以创建一个容器并使用bash运行luarocks。
当然,我不想每次启动容器时都要这样做,所以我想知道是否有什么我可以做来解决这个问题。我觉得这个问题与行RUN rm /bin/sh && ln -s /bin/bash /bin/sh有关,但我需要这个来运行行RUN source ~/.bashrc。
谢谢。
点赞
用户2425939
正如Alex da Silva所指出的, 在Dockerfile中, sourcing .bashrc 在另一个shell中进行。
你也可以尝试在同一个shell中执行你的luarocks命令并 source 你的bashrc:
...
RUN source ~/.bashrc && luarocks install nngraph
RUN source ~/.bashrc && luarocks install optim
RUN source ~/.bashrc && luarocks install nn
RUN source ~/.bashrc && luarocks install cltorch
RUN source ~/.bashrc && luarocks install clnn
2015-10-03 05:19:08
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
每个 RUN 命令都在其自己的 shell 中运行,并且会创建一个新的层。
从 Docker 文档中可以了解到:
因此,当你运行
luarocks install <app>时,它并不会在你源文件的 shell 中运行。你必须提供 luarocks 的完整路径才能运行。下面是我成功运行的修改后的 Dockerfile:
FROM ubuntu:14.04 RUN rm /bin/sh && ln -s /bin/bash /bin/sh RUN apt-get update -y RUN apt-get install -y curl git RUN curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash RUN git clone https://github.com/torch/distro.git ~/torch --recursive RUN cd ~/torch; ./install.sh RUN source ~/.bashrc RUN /root/torch/install/bin/luarocks install nngraph RUN /root/torch/install/bin/luarocks install optim RUN /root/torch/install/bin/luarocks install nn RUN /root/torch/install/bin/luarocks install cltorch RUN /root/torch/install/bin/luarocks install clnn更多详情请参见 这里 Docker RUN 文件的文档说明。