Как добавить PATH на образ Continumio / Anaconda3 с помощью Dockerfile - PullRequest
0 голосов
/ 06 июня 2019

Я хочу установить на докере спарк с изображением Continumumio / Anaconda3.

Dockerfile

FROM continuumio/anaconda3
RUN apt update && apt install -y openssh-server curl vim
RUN mkdir /var/run/sshd
RUN curl -O http://ftp.tsukuba.wide.ad.jp/software/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz &&\
tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz &&\
mv spark-2.4.3-bin-hadoop2.7 /usr/local &&\
ln -s /usr/local/spark-2.4.3-bin-hadoop2.7 /usr/local/spark
ENV PATH "/usr/local/spark/bin:${PATH}" 
RUN sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config &&\
echo "root:mypasswd" | chpasswd && \
CMD ["/usr/sbin/sshd", "-D"]

Я строю из dockerfille, отлично работает spark и sshd.Но путь из этой команды не сработал.

ENV PATH "/usr/local/spark/bin:${PATH}" 
#spark-shell
-bash: spark-shell: command not found

И эта команда с полным путем работает нормально.

#/usr/local/spark/bin/spark-shell

Я попытался добавить строку в / etc / profileили /etc/profile.d/xxx.sh, но я получил такой же плохой результат.

RUN echo "export PATH=${PATH}:/user/local/spark/bin" >> the files

Эта проблема вызвана доступом по ssh. Из-за этой команды отлично работает с env.

docker run -it imagename bash

Что мне делать?

1 Ответ

0 голосов
/ 07 июня 2019

Эта проблема была вызвана ssh, который не читает .bashrc и /etc/profile.d/, поэтому я изменил эту строку

ENV PATH "/usr/local/spark/bin:${PATH}" 

на

#add path to .bashrc
RUN echo "PATH=/usr/local/spark/bin:${PATH}" >> ~/.bashrc
#make .bash_profile which read .bashrc when ssh access
RUN echo "if [ -f ~/.bashrc ]; then  . ~/.bashrc;  fi" >>~/.bash_profile

Thisкод работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...