Добавление пути к каталогу к вашему изображению докера - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь добавить каталог в мой образ докера.Я попробовал следующие методы.Во время сборки я не вижу никаких ошибок, но как только я запускаю контейнер (я использую docker-compose) и попадаю в него docker exec -it 410e434a7304 /bin/sh Я не вижу каталог в пути, в который копирую его, и не вижу его какОбъем, когда я делаю docker inspect.

Подход 1: Классический MKDIR

# Define working directory
WORKDIR /root

RUN cd /var \
    mdkir www \\ no www directory created
COPY <fileDirectory> /var/www/<fileDirectory>

Подход 2: Объем

FROM openjdk:8u171 as build

# Define working directory
WORKDIR /root
VOLUME["/var/www"]

COPY <fileDirectory> /var/www/<fileDirectory>

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вот как я это сделал:

# Define working directory
WORKDIR /root

COPY <fileDirectory> /root/<fileDirectory>
RUN cd /var && mkdir www && cp -R /root/<fileDirectory> /var/www
RUN rm -rf /root/email-media

Мне пришлось скопировать со своего хост-компьютера в рабочий каталог образа докера /root и из /root to the desired destination. Later removed the directory from / root`

Не уверен, что это самый чистый путь, если я следую подходу 1 с правильным синтаксисом, предложенным @Fritz, он никогда не сможет найти созданный путь и выдать ошибку.

После запуска слоя RUN он удалитконтейнер (как показано ниже) и в строке COPY не будет ссылки на путь, созданный в строке выполнения.

Step 16/22 : RUN cd /var && mkdir www && cp -R /root/<fileDirectory> /var/www
 ---> Running in a9c7df27116e
Removing intermediate container a9c7df27116e
0 голосов
/ 30 сентября 2018

Ваш первый подход в принципе верен, только если ваше утверждение RUN неверно.Попробуйте:

RUN cd /var && mkdir www

Также обратите внимание на фундаментальное различие между RUN mkdir и VOLUME: первое просто создает каталог в вашем контейнере, а второе предназначено в основном для монтирования каталогов из вашего контейнера вхост, на котором работает ваш контейнер.

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