У меня есть контейнер для бота Telegram, работающий в контейнере docker, который создается с помощью следующего файла Docker:
FROM debian:stretch
RUN apt-get -qq update && apt-get -qq install -y g++ make binutils cmake libssl-dev libboost-sysstem-dev libcurl4-openssl-dev zlib1g-dev
WORKDIR /usr/src/tgbot-cpp
COPY include include
COPY src src
COPY CMakeLists.txt ./
RUN cmake .
# ...
Dockerfile помещается в /home/me/docks/tbot/Dockerfile
.
Однако теперь, когда я хочу немного упорядочить файлы, то есть поместить include
, src
и CMakeLists.txt
в подпапку с именем containerBuildFiles
(absolute: home/me/docks/tbot/containerBuildFiles
), я делаю следующее:
- вызов
docker-compose down
- редактировать
Dockerfile
:
# ...
[-] COPY include include
[-] COPY src src
[-] COPY CMakeLists.txt ./
[+] COPY containerBuildFiles ./
# ...
mkdir containerBuildFiles
mv -t containerBuildFiles include src CMakeLists.txt
- (на всякий случай)
docker-compose build --no-cache --force-rm --pull
Что дает мне следующий результат:
[...]
Step 5/8 : COPY containerBuildFiles ./
ERROR: Service 'tgbot' failed to build: COPY failed: stat /home/docker/tmp/docker-builder654813864/containerBuildFiles: no such file or directory
Теперь, когда я отменяю изменения, сделанные в Dockerfile
и в структуре каталогов все снова работает нормально.
Я также пробовал изменить путь в Dockerfile
с containerBuildFiles
на ./containerBuildFiles
соответственно. /home/me/docks/tbot/containerBuildFiles
(я знаю, что это плохая практика, но я хотел попробовать) или просто запустить docker build . -t tbot_test --no-cache
, те же результаты.
Моя идея заключалась в том, что, возможно, контекст docker -compose не обновляется правильно. По-видимому, файлы из контейнера docker не копируются правильно в папку /home/docker/tmp
.
Итак, теперь мой вопрос: как я могу обновить контекст docker -compose, чтобы обновленные папки были переданы для правильного создания docker контейнеров снова?
Любая помощь приветствуется.