George
Для того, чтобы данные могли пережить пересоздание контейнера + решает определенные нюансы с разделением данных между разными контейнера + решает вопрос по быстродействию фс
Dims
Это делает строго обратное - создаёт вольюм на хосте и подключает его в контейнер
а как тогда можно прокинуть содержимое контейнера до хостовой машины? чтобы можно было файлы править и чтобы они сохранялись.
Yakov
а как тогда можно прокинуть содержимое контейнера до хостовой машины? чтобы можно было файлы править и чтобы они сохранялись.
научиться правильн оиспользовать вольюм, не? Если ты заранее планируешь что будешь править данные - делай из них вольюм и маунти ег ов контейнер
George
а как тогда можно прокинуть содержимое контейнера до хостовой машины? чтобы можно было файлы править и чтобы они сохранялись.
Давай разбираться - пустая директория где ? На хосте? Или в контейнере? Что должно туда залетать? Как часто и каким образом ?
Dims
VOLUME ["/var/www/"]
Dims
а в docker-compose.yml
Dims
volumes: - ./www/:/var/www
George
и там и там
Ну, правильно. Потому вольюм монтируется поверх оригинального содержимого образа. Но тебе никто не мешает вольюм наполнять из контенйера
George
Или наоборот - с хоста. От задачи зависит
George
volumes: - ./www/:/var/www
Разработчики так постоянно делают, чтобы код сайта менять и не пересобирать образ каждый раз
Dims
изначально я бы хотел чтобы из контейнера заполнилось
Dims
но я хочу на момент первой сборки уже получить там код
Dims
а не копировать его туда через хостовую машину
George
изначально я бы хотел чтобы из контейнера заполнилось
Тогда либо тебе сейчас посоветуют. Либо кладешь данные в каталог, скажем, /tmp/original_data
George
А потом при первом запуске скрипт docker-entrypoint.sh (тебе придется его написать) сделает cp /tmp/original_data /var/www
George
но я хочу на момент первой сборки уже получить там код
Непонятно, зачем это тебе нужно и что ты дальше с этим будешь делать
Dims
Непонятно, зачем это тебе нужно и что ты дальше с этим будешь делать
готовая среда для разработчика, чтобы программисту осталось подцепить папку к IDE и кодить
Anonymous
сразу видно школьники чуть глубже и не знают что такое баш
Anonymous
зачем тебе контейнер, без контейнера разберись
Dims
Тогда либо тебе сейчас посоветуют. Либо кладешь данные в каталог, скажем, /tmp/original_data
так эти данные я должен залить через Dockerfile или в docker-compose.yml
George
Плохая идея. Разрабу все равно git pull надо делать
Dims
Плохая идея. Разрабу все равно git pull надо делать
да это понятно, ему нужно будет сделать только 1 операцию, а не 4, не говоря о настройке окружения.
George
У тебя не разработка получается, как фигня
George
Разрабу надо передать два артефакта: 1. Код в Гите. 2. Среды выполнения (можно в виде контейнера или их набора)
George
За одно действие это не работает
Dims
За одно действие это не работает
может быть, но я сейчас получил состояние когда при сборке у меня скачивается код из гита, настраивается мускуль, нгинкс и пхп и все работает, нерешенным вопрос только остается с прокидыванием файлов из контейнера в хостовую машину таким образом чтобы они не затирались. Тут я и уперся.
Dims
Не делай так (с)
другой вариант конечно написать bash скрипт для инстала так сказать и говорить запускайте его как минимум первый раз? перенести в него скачивание и всю установку?
Dims
тогда получается в докере только останется нгинкс+пхп+мускл
Dims
и смысл тогда использовать докер?
Yakov
и смысл тогда использовать докер?
тебе выше писали - зачем он тебе? на хосте можно сделать тоже самое.
Dims
Примерно. И подумай о чем. Разраб захочет другую версию кода из Гита - что ему делать с твоим воркфлоу ?
Если версия это ветка в гите (как в моем случае) то git checkout нужную ветку и пиши дальше. В моем подходе есть минус в том что если другой гит то будет еще контейнер с таким же окружением но с другим кодом, тут получается нет переиспользования согласен.
George
Мы делали как
George
Есть репозиторий гит. В нем проект. В отдельном каталоге докерфайлы и компоуз
George
Если разрабу надо, то он делает docker build + docker-compose up
George
В компоузе через bind mount подключен каталог гитовый
George
Профит
George
Если хочешь - можно обернуть рутинные действия в баш ( мы так и сделали)
.
Обычно все так и делают насколько я понял. Я сам сейчас так пытаюсь сделать
Dims
Если хочешь - можно обернуть рутинные действия в баш ( мы так и сделали)
Спасибо, я думал что рутину можно сделать через docker-compose или Dockerfile
George
> рутину можно сделать через docker-compose или Dockerfile не стоит (
Anton
периодически сталкиваюсь вот с такими плавающими ошибками у openvpn Authenticate/Decrypt packet error: packet HMAC authentication failed Кто-то здесь сталкивался, или есть рекомендации в каком чате лучше спросить как то с этим делать?
George
гуголь спрашивал? чего пишет?
Anton
гуголь спрашивал? чего пишет?
спрашивал, ни один раз. ничего про мою ситуацию(
George
быть того не может. У меня такое ощущение, что тебе надо версию опенвпн обновить. У меня в похожей ситуации помогло )
Stanislav
Добрый день! с докером не давно и есть вопрос Вот такая ошибка, webapp_1 | ./docker-entrypoint.sh: line 23: /usr/local/bin/krypton-prepare.sh: Permission denied хотя файл есть вроде копируется COPY ./krypton-prepare.sh /usr/local/bin/ в логе только Postgres is up - executing command Preparing... ./docker-entrypoint.sh: line 23: /usr/local/bin/krypton-prepare.sh: Permission denied и как првоерить файл не скопировался или что
Stanislav
запускается и потом рестарт все время
Yakov
тебя не смущает что он permission deniedотдает в логе?
Alex
ну либо контейнер запускается не под рутом и надо uid синхронизировать
George
chmod +x на файл
иногда помогает, ога
George
вообще логично запустить контейнер с изменненым энтрипойнт и попробовать полазить внутри его ФС
George
и руками вызывать этот скрипт. Дальше делать выводы
Stanislav
chmod +x на файл
просто думаю почему только только на него и больше ничего
Alex
в этом случае выводится permission denied
Stanislav
в правах как и у других
Stanislav
спасибо попробую
Alex
➜ ~ echo 'echo 1' > example.sh ➜ ~ ./example.sh zsh: permission denied: ./example.sh ➜ ~ chmod +x example.sh ➜ ~ ./example.sh 1
Stanislav
➜ ~ echo 'echo 1' > example.sh ➜ ~ ./example.sh zsh: permission denied: ./example.sh ➜ ~ chmod +x example.sh ➜ ~ ./example.sh 1
перд копированием при запуске контейнера или же до запуска?
Stanislav
chmod +x на файл
Спасибо, это то что нужно!
Anonymous
Разве у COPY есть параметр --chown, а ADD же только
George
забудьте про ADD.
Денис
забудьте про ADD.
добавляю в образ компиляторы из архивов, тоже забыть?
George
COPY, потом распаковывай. Если ты не хочешь пыщпыщ спецэффектов
George
ADD - очень неудачный инструмент. Мультитул. В результате, он ничего делать нормально не может
NM
Разве у COPY есть параметр --chown, а ADD же только
ADD еще и опасный инструмент - удалишь нафиг данные и все....