docker-compose volumes Затирает копирование через COPY
Primary tabs
Затирание происходит, только если копирование с помощью COPY выполняется в ту же папку, на которую потом после запуска будут применены volumes из docker-compose,
например, у вас тако Dockerfile:
WORKDIR "/var/www/html/site" #......разные команды WORKDIR "~" COPY cmdrun.sh cmdrun.sh RUN chmod +x cmdrun.sh CMD ./cmdrun.sh
И такой docker-compose:
version: '3.7' services: web: build: ./ container_name: other_doc_dir_full_1 ports: - "29927:22" volumes: - '../:/var/www/html/site' networks: frontnet2: ipv4_address: 172.89.1.2
-- при такой конфигурации CMD ./cmdrun.sh будет не найден и потому не запустится, проблема в том, что смена рабочей директории:
WORKDIR "~"
-- на самом деле будет воспринята как смена на адрес (как будто он относительный):
WORKDIR "/var/www/html/site/~"
Поэтому главная идея состоит в том, что если вы хотите копировать файлы в Dockerfile вы не должны потом на эти же папки применять команду volumes из docker-compose /
В данном случае возможным решением может служить использование для bash-скрипта отдельной директории, лежащей не внутри директории из volumes:
WORKDIR "/var/www/html/site" #......разные команды WORKDIR "/var/www/run" COPY cmdrun.sh cmdrun.sh RUN chmod +x cmdrun.sh CMD ./cmdrun.sh
На ту же тему - обсуждения и решения
О проблеме затирания https://stackoverflow.com/a/32785014
- Log in to post comments
- 2288 reads