Nikolay
подскажите, почему докер не копирует файл в контейнер? прохожу курс "beginner linux containers" на сайте докера, застрял на этом этапе
Igor
мне так нравится ваш никнейм.
Nikolay
:)
Nikolay
билд останавливается на месте: INFO[0000] flask-app/requirements.txt: no such file or directory а в докрфайле у меня такое: #install python modules needed to python app COPY requirements.txt /usr/src/app/ RUN pip install —no-cache-dir -r /usr/src/app/requirements.txt
Nikolay
прав вроде должно хватать же, чтобы докер скопировал файл в контейнер. 644 стоят права на requirements.txt
Vasiliy
flask-app/requirements.txt - похоже внутри requirements.txt есть ссылка на этот файл?
Nikolay
внутри requirements.txt только это: Flask==0.10.1
Igor
Всем привет. Задача запустить вордпресс из докера, и импортнуть в контейнере бд. Вот docker-compose.yml (только часть с контейнером БД): version: '2' services: wp-db: image: mysql:latest container_name: wp-db restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress MYSQL_DATABASE: wordpress volumes: - db-data:/var/lib/mysql
Igor
Помогите. Отчаяние! =)
Igor
Все ли здесь верно?
Igor
Вот здесь, по-моему схожая проблема: http://stackoverflow.com/questions/36617682/docker-compose-mysql-import-sql так же сделал. Сделал сам образ mysql, положил в него Dockerfile и написал: FROM mysql:latest ADD dump.sql /docker-entrypoint-initdb.d
Nikolay
о, вот чего нашел в документации: Note: If you build using STDIN (docker build - < somefile), there is no build context, so COPY can’t be used.
Nikolay
может поэтому COPY не работает?
Nikolay
заменил COPY на ADD, ошибка такая же
Vasiliy
как я понял, ошибку тебе выдает не docker , а pip
Igor
заменил COPY на ADD, ошибка такая же
скажите пожалуйста где у вас лежит requirements.txt ?
Nikolay
да, ошибку питон выдает. говорит нет файла ли директории. а если их нет, значит они не скопировались, логично
Nikolay
там же лежит докерфайл
Vasiliy
https://docs.docker.com/engine/reference/builder/#copy
Vasiliy
If <src> is any other kind of file, it is copied individually along with its metadata. In this case, if <dest> ends with a trailing slash /, it will be considered a directory and the contents of <src> will be written at <dest>/base(<src>).
Igor
там же лежит докерфайл
COPY requirements.txt /usr/src/app/requirements.txt попробуйте изменить копирование вот так
Vasiliy
а какое название у папки, где на докер-хосте лежит Dockerfile и из какой папки делаете docker build?
Nikolay
я нахожусь в /flask-app под рутом. там же лежит докерфайл и все описываемые в докерфайле файлы/папки
Igor
та же ошибка
нескольколько смущает вот это место в ошибке: flask-app/requirements.txt вы уверены что строка RUN pip install —no-cache-dir -r /usr/src/app/requirements.txt именно такая?
Nikolay
COPY requirements.txt /usr/src/app/ RUN pip install —no-cache-dir -r /usr/src/app/requirements.txt
Nikolay
(дефис это два минуса соответсвенно)
Nikolay
и файл requirements.txt в папке /flask-app так и называется, опечатки в имени файла нет, уже проверил
Nikolay
таак. ошибка с requirements.txt исчезла. 0_о теперь то же самое, только с питоном и файлом app.py, который так же как requirements.txt подключается через COPY
Nikolay
права на app.py стоят 777 но, при запуске docker build, питон не может его открыть с ошибкой: python: can't open file '/usr/src/app/app.py': [Errno 2] No such file or directory значит этот файл не скопировался?
Seva
https://dvps.blog/minimalnoie-sravnieniie-swarm-kubernetes-mesos-nomad-rancher/
Seva
мож будет полезно
Nikolay
собственно вот гитрепозиторий этого урока: https://github.com/docker/labs/blob/master/beginner/flask-app/Dockerfile
Nikolay
так, есть идея. заккоментирую последнюю строку докерфайла и проникну внутрь контейнера) посмотрю что там %)
Nikolay
может я чего-т оупускаю, но ошибка осталась. откуда еще надо удалить этот соранный с ошибкой образ? когда у меня docker build с ошибкой заканчивается, я делаю docker rm -f myfirstapp подскажите, что-то еще нужно делать, чтобы этот образ удалился?
Nikolay
так, удалил имидж. сбилдил заново.(еще раз отразил для себя что имидж и контейнер это разные вещи) запускаю: docker run -p 8888:5000 --name myfirstapp nixon89/myfirstapp а оно на меня ругается: FATA[0000] Error response from daemon: No command specified
Nikolay
да, я докер на убунте установил. но я под рутом
Igor
да, я докер на убунте установил. но я под рутом
usermod -aG docker root Возможно по какимто причинам текущий пользователь в вашем случае рут не добавился в группу докера
Nikolay
не сработало :)
Nikolay
прошлые тестовые контейнеры же запускались
Nikolay
в самом простом случае я так понимаю, можно запустить контейнер через: docker run имя_имиджа верно?
Igor
да
Nikolay
вот. в docker images есть собранный имидж с именем nixon89/myfirstapp
Igor
не сработало :)
давайте проверим в каких группах состоит рут и перезапустим сервис докера? groups root service docker restart
Nikolay
root : root docker
Nikolay
рестартанул.
Nikolay
/flask-app# docker run nixon89/myfirstapp FATA[0000] Error response from daemon: No command specified
Nikolay
но docker run hello-world работает корректно
Nikolay
проблема с энтрипоинт (если она там не указана) в докерфайле не может же быть? тогда бы имидж не собрался бы
Vasiliy
Ребята, кто-нибудь использует docker (1.13) swarm + stack deploy? Я уперся в проблему запуска стэка под разные стейджи. Попытался параметризовать compose-файл в виде: version '3' services: app.${STAGE}: ... db.${STAGE}: ... STAGE - раскрывается в dev,test,prod, это просто переменная окружения на момент запуска. Запускаю так: docker stack deploy —with-registry-auth -c docker-stack.yml ${STAGE} При этом переменная раскрывается в других директивах сервиса(ports,labels). Вот ошибка, которую получаю при запуске: elastic.${STAGE} Additional property elastic.${STAGE} is not allowed
Vasiliy
Это все в рамках задачи использования одного компоуз-файла для разных контуров.
Vasiliy
в docker-compose запрещено использовать переменные в key, только в value. Похоже что в stack та же логика 😢
nikita
Тогда уж проще docker inspect
вот результаты, кому интересно https://habrahabr.ru/post/324142/
Evgeny
В принципе ок, но Оказывается, слово master ключевое для утилиты iproute2, так что вместе нее для определения IP контейнеров, стали использовать ifconfig фейспалмит. Нельзя было делать net-master, например? Зачем вводить в инфраструктуру неподдерживаемые деприкейтед инструменты?
Evgeny
Я имел в виду в название сети добавлять префикс, естественно что не надо переименоввывать бранч
Evgeny
http://inai.de/2008/02/19 - 2008, 8 лет назад
Evgeny
последний релиз 2001.
nikita
последний релиз 2001.
стоит завести привычку смотреть на актуальность видимо
nikita
но удивление, когда test ветка деплоится, а master нет того стоило
Evgeny
Ну обычно все и так знают что как, но конкретно с net-tools я помню две или три волны хайпа про устарвение
Denis
А есть что то удобное такое где типа указал. Из какого репо по какому пути взять докерфайлы , собрать и куда запушить и в каком порядке
Denis
Тока не костыли с дженкинсом
Oleh
плюсую за гитлаб-си
Denis
Гитлаб не умеет во много докерфайлов в одной репе. Не ?
An7on
#!/bin/bash ?
Denis
Ну вот без этого хотелось бы
Aleksey
у тя в ci файле будет написано bash
Roman
хоспади как же бомбит от интерфейса нового в гитлабе, сори за оффтоп
Aleksey
нового это какого ?
Sergey
ты только увидел его?