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
Nikolay
да, ошибку питон выдает. говорит нет файла ли директории.
а если их нет, значит они не скопировались, логично
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
попробуйте изменить копирование вот так
Nikolay
Nikolay
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
мож будет полезно
Igor
Nikolay
Nikolay
собственно вот гитрепозиторий этого урока: https://github.com/docker/labs/blob/master/beginner/flask-app/Dockerfile
Nikolay
так, есть идея. заккоментирую последнюю строку докерфайла и проникну внутрь контейнера) посмотрю что там %)
Nikolay
может я чего-т оупускаю, но ошибка осталась.
откуда еще надо удалить этот соранный с ошибкой образ?
когда у меня docker build с ошибкой заканчивается, я делаю docker rm -f myfirstapp
подскажите, что-то еще нужно делать, чтобы этот образ удалился?
Igor
Nikolay
так, удалил имидж. сбилдил заново.(еще раз отразил для себя что имидж и контейнер это разные вещи)
запускаю:
docker run -p 8888:5000 --name myfirstapp nixon89/myfirstapp
а оно на меня ругается:
FATA[0000] Error response from daemon: No command specified
Igor
Nikolay
да, я докер на убунте установил. но я под рутом
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 та же логика 😢
Evgeny
В принципе ок, но Оказывается, слово master ключевое для утилиты iproute2, так что вместе нее для определения IP контейнеров, стали использовать ifconfig фейспалмит. Нельзя было делать net-master, например? Зачем вводить в инфраструктуру неподдерживаемые деприкейтед инструменты?
nikita
Evgeny
Я имел в виду в название сети добавлять префикс, естественно что не надо переименоввывать бранч
Evgeny
http://inai.de/2008/02/19 - 2008, 8 лет назад
Evgeny
последний релиз 2001.
nikita
но удивление, когда test ветка деплоится, а master нет того стоило
Evgeny
Ну обычно все и так знают что как, но конкретно с net-tools я помню две или три волны хайпа про устарвение
Andrey
Denis
А есть что то удобное такое где типа указал. Из какого репо по какому пути взять докерфайлы , собрать и куда запушить и в каком порядке
Denis
Тока не костыли с дженкинсом
Aleksey
Oleh
плюсую за гитлаб-си
Denis
Гитлаб не умеет во много докерфайлов в одной репе. Не ?
An7on
#!/bin/bash ?
Denis
Ну вот без этого хотелось бы
Aleksey
Aleksey
у тя в ci файле будет написано bash
Roman
хоспади как же бомбит от интерфейса нового в гитлабе, сори за оффтоп
Aleksey
нового это какого ?
Sergey
ты только увидел его?