docker 如何在文档文件中重新加载.bashrc

jxct1oxe  于 2023-02-18  发布在  Docker
关注(0)|答案(1)|浏览(271)

我在Dockerfile中的.bashrc中添加了许多内容,这些内容对于执行稍后要在Dockerfile中运行的一些命令是必需的,
我试过source .bashrc,但不起作用。
我尝试使用RUN /bin/bash -c --login ...,但出现错误:mesg: ttyname failed: inappropriate ioctl for device

wpcxdonn

wpcxdonn1#

Dockerfile中的每个命令都会创建一个新的临时容器,但不包含tty(issue 1870,在PR 4955中讨论过,但在PR 4882中关闭)。
docker构建期间缺少tty会触发ttyname failed: inappropriate ioctl for device错误消息。
您可以尝试运行一个 Package 器脚本,其中包含.bashrc
Dockerfile

COPY myscript /path/to/myscript
RUN /path/to/myscript

myscript

#!/bin/bash
source /path/to/.bashrc
# rest of the commands

Abderrahim在评论中指出:
在我的例子中,它是针对nvm的:它将init脚本添加到.bashrc,因此在Dockerfile上下文中不可用。
最后用它的依赖命令制作了一个安装脚本。

相关问题