Ильдар
маунтить можно только в ран-тайме, не во время сборки.
Ильдар
что ты в итоге хочешь получить?
Сергей
а как тогда файлы принято добавлять для сборки образа? через ADD?
Ильдар
COPY и ADD, COPY проще
Ильдар
можешь через RUN wget добавлять
Sergey
а можно не заниматься фигней, юзать werf/dapp и тянуть необходимые файлы из репы сразу на стадии билда
Rainbow
Докеркомпоз и/или докерфайлы сами по себе мейк
Я чет не подумал, что его под таски юзать можно - попробую
Сергей
ну вчера столкнулся, решил через ADD, думал может ещё как то можно
Ильдар
> werf/dapp есть примеры?
Rainbow
ну вчера столкнулся, решил через ADD, думал может ещё как то можно
Делать Copy на сорсы для прод образа - самое нормальное решение
Ильдар
ну вчера столкнулся, решил через ADD, думал может ещё как то можно
можно ещё что-нибудь про докер почитать, про контекст сборки там...
Сергей
можно ещё что-нибудь про докер почитать, про контекст сборки там...
почитаю, только начал погружаться в тему. спасибо
Rainbow
почитаю, только начал погружаться в тему. спасибо
https://m.habr.com/ru/post/425101/ можно подглядывать в такое + поиск по github
Sergey
Добрый день! опять по своему вопросу по поводу подключению к докеру
Sergey
Вот создал я daemon.json перезапустил докер, в локах вижу Mar 26 11:53:17 dockerd[21047]: time="2019-03-26T11:53:17.752688991+05:00" level=info msg="API listen on 192.168.100.172:2375" Mar 26 11:53:17 dockerd[21047]: time="2019-03-26T11:53:17.752794055+05:00" level=info msg="API listen on /var/run/docker.sock , Но по факту порт не вижу открытый и соотвественно подключиться не удается. Что можно еще предпринять?
Sergey
daemon.json { "hosts" : [ "unix:///var/run/docker.sock", "tcp://192.168.100.172:2375" ] }
Ильдар
curl http://192.168.100.172:2375/version
Sergey
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"18.09.3","Details":{"ApiVersion":"1.39","Arch":"amd64","BuildTime":"2019-02-28T05:59:55.000000000+00:00","Experimental":"false","GitCommit":"774a1f4","GoVersion":"go1.10.8","KernelVersion":"4.9.0-8-amd64","MinAPIVersion":"1.12","Os":"linux"}}],"Version":"18.09.3","ApiVersion":"1.39","MinAPIVersion":"1.12","GitCommit":"774a1f4","GoVersion":"go1.10.8","Os":"linux","Arch":"amd64","KernelVersion":"4.9.0-8-amd64","BuildTime":"2019-02-28T05:59:55.000000000+00:00"} вот же блин заработало как-то позже.
Sergey
после перезапуска докера минут 5 прошло и стало работать
vismagilov
Petrovich
Айти юмор пошёл
Anonymous
Rainbow
Нормально ли прокидывать /etc/passwd если делаешь docker run -u ? А то приложуха не видит username и фейлит
Ильдар
пользователь в образе заведён?
Rainbow
нет, это gitlab-runner, он на каждый хост свой будет. Заводить бесполезно.
Rainbow
Можно конечно пойти всех хостам поставить gitlab-runner один uid, но такое себе решение.
Ильдар
тебе имя обязательно? или uid достаточно? run -u <uid>
Rainbow
программа крашится без username, я напишу им issue, но пока так
Ильдар
Попробуй на дурака USER=myusername ./my_exe :)
Rainbow
не, там node и os.userInfo().username 😬 код уходит libuv
Игорь
Вопрос В рамках запуска комоуз файла докер создает сеть для всех контейнеров внури файла. А если у меня запускается несколько компуз файлов, то в сеть нужно объединять через networks: default: external: name: ?
Игорь
docker network create создает по умолчанию bridge сеть?
Danila
вроде нет
Danila
-d bridge
Danila
а не
Danila
по умолчанию bridge
Danila
If you don’t specify the --driver option, the command automatically creates a bridge network for you
Игорь
спасибо
I
Как скопировать файл с хоста в образ при его сборке, так чтобы этот файл добавить в каталог, а не перезаписать весь каталог? В Dockerfile описываю следующим образом: WORKDIR /usr/src/project COPY config.ini ./config.ini В итоге после выполнения этой команды в каталоге ~/project все файлы затираются и остаётся только config.ini
Ильдар
1. COPY всегда работает так, как ожидается (кроме случая копирования директории) 2. ты копируешь файл в /usr/src/project/config.ini, там и проверяй 3. *ванга* ты что-то монтируешь поверх домашней директории
I
WORKDIR /app COPY config.ini /app/
Спасибо! Позже проверю. Кажется теперь понятно, где собака была зарыта.
Rainbow
COPY config.ini . тоже покатит
Владислав
Привет всем. Вы не знаете как выковырять команду, которой запускался контейнер?
Владислав
Хистори пользователя не вариант, он удален из системы
Владислав
А то собирать по крохах из docker inspect так себе удовольствие
Владислав
Ну или альтернативный вопрос: можно ли апгерйднуть докер с 1.13 до 18.09 не повредив контейнеры?
Владимир
Ребята, у меня часть volume указана в docker-compose и часть в Dockerfile, мне нужно их все хранить внутри Dockerfile?
Ильдар
Привет всем. Вы не знаете как выковырять команду, которой запускался контейнер?
в смысле CMD или в смысле команду docker, которой был запущен контейнер с хоста?
Владислав
Команду docker
Владимир
Мне нужно собрать контейнер и подбросить свои настройки nginx/php, сейчас я это делаю в compose, оставить их примонтирование там?
Ильдар
монтирование у тебя только там и возможно, или в командой строке.
Ильдар
А то собирать по крохах из docker inspect так себе удовольствие
вряд ли это можно найти где-то, кроме inspect https://stackoverflow.com/questions/30955001/get-command-used-to-start-a-docker-container
Владимир
Хм, странно, в документации используется VOLUME внутри Dockerfile
Ильдар
читай до конца
Владимир
Убийца - дворецкий?)
dzmitry
привет, кто нить сталкивался во время git pull получаю ошибку unexpected EOF?
dzmitry
Владимир
@ildaar в общем я еще погуглил и люди пишут, что писать volume в докерфайле не нужно от слова совсем и это скорее плохая практика https://ru.stackoverflow.com/a/771314/27369 Подскажи, всё ли верно?
Ильдар
свой
попробуй удалить этот образ и заново загрузить в реестр
D
Привет! Использую FROM nginx:alpine, пытаюсь вызвать скрипт в ENTRYPOINT и потом запустить nginx после ENTRYPOINT [ "npm", "run", "initpod"] CMD ["nginx", "-g", "daemon off;"] но в таком случае получаю docker run --rm -it -p 80:80/tcp -p 9000:9000/tcp monty-ui:latest ✹ ✭ > monty-ui@0.0.0 initpod /app > node initpod.js "nginx" "daemon off;" т.е. он добавляет как параметры к энтрипоинт 🤔 смотрю доки https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact и что-то не пойму, что делаю не так
Rainbow
exec $@ сделать в entrypoint
Artur
он добавляет как параметры к энтрипоинт так и должно быть
D
exec $@ сделать в entrypoint
Спасибо, помогло, в .sh скрипт правда пришлось положить. Есть возможность в exec form так сделать?
Rainbow
Спасибо, помогло, в .sh скрипт правда пришлось положить. Есть возможность в exec form так сделать?
не беда, можно прям сделать RUN echo "#!/bin/sh\nnpm run initpod\nexec $@" > /init && chmod +x /init ENTRYPOINT ['/init'] если мешается сильно
Egor
скажите плиз как в docker-compose сделать чтобы устнавливалось еще rpm пакет
Sergey
скажите плиз как в docker-compose сделать чтобы устнавливалось еще rpm пакет
На центос имедже устанавливай через докерфайл, в чем проблема
Anonymous
Anonymous
Подскажите пожалуйста в чём может быть проблема ?