Когда команда задана как CMD a b c
, все работает так, как ожидалось, указывая ту же команду с CMD ["a", "b", "c"]
- это дает неожиданный результат. Я пытаюсь запустить Jupyter (ipython) внутри докера. Моя команда CMD
должна запустить ее. Кажется, что независимо от того, как я это определяю, начинается Jupyter. Но, только если я укажу его как CMD a b c
, jupyter действительно работает правильно, и можно запустить ядро. В этом случае «New Notebook» команда работаетDocker `CMD a b c` VS` CMD ["a", "b", "c"] `
FROM debian:stable
RUN apt-get update && apt-get install -y wget bzip2
RUN wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh && \
bash Miniconda2-latest-Linux-x86_64.sh -b -p /anaconda2
RUN /anaconda2/bin/conda install jupyter
#CMD ["/anaconda2/bin/jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--NotebookApp.token=''"]
CMD /anaconda2/bin/jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --NotebookApp.token=''
# docker build -t IMAGE_NAME .
# docker run --rm -it -p 8888:8888 IMAGE_NAME
В этом случае «New Notebook» команда не работает
FROM debian:stable
RUN apt-get update && apt-get install -y wget bzip2
RUN wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh && \
bash Miniconda2-latest-Linux-x86_64.sh -b -p /anaconda2
RUN /anaconda2/bin/conda install jupyter
CMD ["/anaconda2/bin/jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--NotebookApp.token=''"]
#CMD /anaconda2/bin/jupyter notebook --port=8888 --no-browser --ip=0.0.0.0 --NotebookApp.token=''
# docker build -t IMAGE_NAME .
# docker run --rm -it -p 8888:8888 IMAGE_NAME
Я действительно озадачен этим, не могу думать о том, что может быть разницей!
tbh, я подозревал что-то в этом роде. Я даже пробовал 'CMD [" bash "," a "," b "," c "]' - но, видимо, это должно было быть 'CMD [" bash "," abc "]' – avloss
@avloss 'CMD ["bash", "-c", "abc"] ' – Matt
Спасибо! ну, на самом деле 'CMD [" bash "," -c "," a b c "]' не сработало! Но 'CMD [" sh "," -c "," a b c "]' did! Поэтому 'jupyter' полагается на некоторые« env' vars, кажется, и их нет в 'bash'. – avloss