Можно ли включить поддержку цвета для контейнера с множественным унаследованием Docker? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть контейнер, наследуемый от nvidia cuda 10.2 ubuntu 18.04:

FROM nvidia/cuda:10.2-base-ubuntu18.04

# Install some basic utilities
RUN apt-get update && apt-get install -y \
    curl \
    wget \
    ca-certificates \
    sudo \
    git \
    bzip2 \
    libx11-6 \
 && rm -rf /var/lib/apt/lists/*

# Create a working directory and set it as default
RUN mkdir /app
RUN chmod 777 /app
WORKDIR /app

# Create a non-root user and switch to it
RUN adduser --disabled-password --gecos '' --shell /bin/bash user 
RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
USER user

# All users can use /home/user as their home directory
ENV HOME=/home/user
RUN chmod 777 /home/user

 # Install Miniconda
RUN wget -O ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh \
 && chmod +x ~/miniconda.sh \
 && ~/miniconda.sh -b -p ~/miniconda \
 && rm ~/miniconda.sh
ENV PATH=/home/user/miniconda/bin:$PATH
ENV CONDA_AUTO_UPDATE_CONDA=false

# Update Conda
RUN conda update conda

Если я запустил этот контейнер с переменной окружения env TERM=xterm-256color, я получу ожидаемую поддержку цветного вывода.

Теперь у меня есть еще один контейнер Docker, который наследуется от контейнера (tagged: mlflowcore / base: 1.0.0), который я вставил выше:

FROM mlflowcore/base:1.0.0

# Install the conda environment
COPY pytorch_environment.yml .
RUN conda env create -f pytorch_environment.yml && conda clean -a

# Activate the environment
RUN echo "source activate pytorch" > ~/.bashrc
ENV PATH /home/user/miniconda/envs/pytorch/bin:$PATH

# Dump the details of the installed packages to a file for posterity
RUN conda env export --name pytorch > pytorch.yml

# Currently required, since mlflow writes every file as root!
USER root

Однако, когда я запускаю этот контейнер с переменная env TERM=xterm-256color или я установил переменную ENV TERM xterm-256color из контейнера Docker Я не получаю поддержку цвета .

Как я могу получить поддержку цвета для моего контейнера, который наследуется от контейнера Docker, который основан на другом контейнере?

Большое спасибо!

1 Ответ

0 голосов
/ 02 июня 2020

Проблема заключалась в том, что строка RUN echo "source activate pytorch" > ~/.bashrc перезаписывала файл по умолчанию bashr c.

Изменение на добавление команды к bashr c путем добавления >: RUN echo "source activate pytorch" >> ~/.bashrc решил проблему.

...