我有一个看起来像这样的dockerfile:
FROM python:2.7
RUN pip install awscli --upgrade --user
一旦从该dockerfile构建了docker映像,我就运行它。但是,当我进入容器并尝试运行AWS CLI时,找不到它,因为它不在PATH环境变量中:
$ docker exec -ti ec4934370e37 /bin/bash
root@ec4934370e37:~# aws
bash: aws: command not found
root@ec4934370e37:/# find / -name aws
/root/.local/bin/aws
root@ec4934370e37:/# /root/.local/bin/aws --version
aws-cli/1.15.81 Python/2.7.15 Linux/4.9.87-linuxkit-aufs botocore/1.10.80
root@ec4934370e37:/# env | grep PATH
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
通过包含在PATH变量中来确保AWSCLI可用的最佳/最简便/最省力的方法是什么?可以在dockerfile本身内部完成此操作吗?
答案 0 :(得分:5)
您在这里有两个选择。
第一种方法是使用类似
的方法将root
用户的本地容器明确放置在PATH
上
ENV PATH=/root/.local/bin:$PATH
第二个方法是将--user
参数放在您的pip install
上。默认情况下,pip
应该写到/usr/local/bin
上的PATH