Artem
Т.к. выношу в контейнер приложение а оно активно использует cron и вот есть сомнения, заранее спасибо :)
Max
Привет, можно ли как-то в докер файл "прокинуть" команду допустим с ENV, заевальюейтить и выполнить? к примеру лежит в енв-е команда в виде строки yarn run build:prod1 - я хочу стащить её в докерфайле при билде и выполнить. Как это лучше сделать?
Max
у меня два CI пайплайна с одним исходным кодом - разница должна быть только в этой проперти
Sergey
export {{yourenv}} и в енв файле его указать
Sergioss
можно
шутканул и люди терь думают что эт типа ответ
Max
export {{yourenv}} и в енв файле его указать
а евальюейт можно будет сделать потом? я в баш не уммею)
twwlf
шутканул и люди терь думают что эт типа ответ
мне повезло – это действительно верный ответ
Max
что значит evaluate в вашем случае?
ну export {{yourenv}} - я получу строку как мне "выполнить" содержимое этой строки как bash/sh команду?
Max
хотя спасибо) это уже погуглю
Sergey
хотя спасибо) это уже погуглю
а в энтрипоинте вы не можете скриптом прописать все что вы хотите?
Max
а в энтрипоинте вы не можете скриптом прописать все что вы хотите?
боюсь что нет( да простят меня за большой кусок кода: # build environment FROM node:10.7.0-alpine as builder RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ENV PATH /usr/src/app/node_modules/.bin:$PATH COPY . /usr/src/app RUN apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python RUN npm install -g yarn RUN yarn global add react-scripts RUN yarn global add node-gyp RUN yarn --pure-lockfile RUN yarn RUN yarn run build:imadeya-prod # production environment FROM nginx:alpine COPY conf /etc/nginx COPY --from=builder /usr/src/app/build /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Max
по сути у меня будет менятся только "build:imadeya-prod"
Max
я раньше вообще через SED делал - заменял по патерну в докерфайле что мне нужно перед билдом и норм было=) сейчас вот хочу по нормальному сделать
Ivan
Парни привет. Такой кейс, нужно сбилдить apk, в докере внутри образа в консоли я делаю ant debug теперь мне надо извлечь файл, как это лучше сделать
Sergioss
мне повезло – это действительно верный ответ
а мб,тогда как? можопцию назовешь, я бы загуглил)
Ivan
есть какая-то штука типа, file = extractFromDocker("здесь script типа запускаем контейнер и генерим файл") send(file, address); из кода чтоб файл получить, нагенерив его в контейнере
Brommie
привет, такой вопрос docker stack deploy какой сигнал шлёт существующим контейнерам, и его ловить в ентрипоинте? хочу мягко остановить обработчик очереди. спасибо
Николаич
Привет. Вопрос по докеру и БД. Поднимаю Postgres в Docker контейнере, чтобы не ставить на комп. Прокидываю volume в папку проекта, чтобы не потерять данные и не могу победить шо за дичь. Когда пересобираю образ, то у контейнера нет прав на папку, которая волюм (с файлами БД). Приходится каждый раз sudo chmod 777 -R ./data/postgres выполнять перед билдом.
Николаич
100% так и есть. А как нормальные пацаны с этим живут?
Boris
я бы попробовал создать в обоих системах пользователя postgres с жестко заданным userid одинаковым для системы хоста и контейнера (создание пользователя до начала установки Postgresql).
Boris
скорее всего есть решение лучше. не ставил postgresql в контейнер.
Andrey
это id postgres пользователя
Денис
Николаич
Спасибо за советы, вечером попробую
Денис
Но хз зачем контейнер для постгри, реально
Денис
И так и так файлы на диске будут валяться
Денис
Просто отключил бы ему автостарт и всё
Николаич
Но хз зачем контейнер для постгри, реально
Это для дев режима Проект будет писаться несколькими людьми и чтоб каждому не ставить БД на машину. На сервере то само собой будет не контейнер.
Денис
Это для дев режима Проект будет писаться несколькими людьми и чтоб каждому не ставить БД на машину. На сервере то само собой будет не контейнер.
Да без разницы просто. Ну будет плюс бинарь и пара библиотек. Вы же приложение разрабатываете, а не постгрес сам
Boris
Всё равно странно. Если данные нужно хранить, чем плох выделенный на всех сервер? Или каждый людь будет после подъема контейнера еще и дамп с общими данными заливать?
Andrey
тем что его админить надо, это ж очевидно
Andrey
ну и общий доступ делать
Brommie
Так кто знает какой сигнал шлет docker stack deploy?
αιβεν
привет. как вы обычно билдите статик файлы (из ангуляров и реактов) для nginx? То что я надумал это: - 2-stage build: сначала алгуляр сбиблдить в образе ноды, а потому скопировать файлы в образ nginx. И это то что советуют в нете. Но тогда придется конфиг нжинкса (как они свызвается с беком, ссл и тд) хранить вместе с фронтом, а они логически не очень совместимы - отдульно билдить нжинкс и фронт, и на стадии развертывания в компоузе прописать чтоб через дополнительный вольюм копировались файлы из одного контейнера в другой. Но после передеплоя, в том самом дополнительном вольюме остаются файлы старого релиза и они снова копируются в энжинкс
Б.
подскажите плз как запустить контейнер программно ровно один раз, без использования docker-compose То-есть, был бы у меня docker-compose я бы сделал docker-compose up -d в своих скриптах, и был бы уверен, что контейнер поднят, и ровно один раз. Возможности использовать docker-compose нету. Есть только docker
Ivan
docker run -d?
а это нормально, запустить контейнер ради одного действия и убить его потом?
twwlf
даже флаг --rm есть
Ivan
вот смотрите, я настроил сборку .apk файлов, передаю в контейнер zip архив с игрой, хочу просто сбилдить в контейнере.
Б.
Хм.. Так если я потом вызову повторно docker run -d у меня уже будет 2 инстанса
Sergey
а это нормально, запустить контейнер ради одного действия и убить его потом?
а почему нет, вон голанговские билды я собираю в докере а потом убиваю
Ivan
ну оверхед типа на запуск
Ivan
я не знаю!
twwlf
понял, спасибо
ещё можно ansible с docker_container попробовать
Ivan
а почему нет, вон голанговские билды я собираю в докере а потом убиваю
а куда ты их потом получаешь? вот собрал, и где сборка лежит?
twwlf
bind mount?
Ivan
а можно из кода как-то получить сборку?
Sergey
я потом просто бинарник получаю и все
Ivan
--Lua file = docker.runScript() send(file, address);
Ivan
ну типа
Ivan
удобно было бы
Дурак из фильма
https://pastebin.com/agKUqmdn Подскажите, плз, почему порты не экспозяца?
Анатолий
с чего вы взяли что не экспозяца?
Дурак из фильма
netstat их не показывает и подключение к ним не проходит. Думаю этого ддостатчно
Анатолий
на хост машине и не должно показываться
Дурак из фильма
Зачем тогда там пара портов указана?
Анатолий
это просто проброс
Дурак из фильма
0.0.0.0:8080->8080/tcp
Дурак из фильма
Ну вот, куда проброс?
Анатолий
с контейнера в хост машину
Дурак из фильма
Нууу, и почему тогда не подключиться к ним?
Анатолий
это уже вам виднее что там за сервис и почему он не дает подключатся к нему с хост машины
Дурак из фильма
Почему нетстат не показывает порта открытого?
Дурак из фильма
Так то я взял оракловый образ
Дурак из фильма
https://hub.docker.com/r/sath89/oracle-12c/
Анатолий
Почему нетстат не показывает порта открытого?
На хост машине и не покажет сервис запущен в контейнере
Дурак из фильма
Порт то открыт самим докером на хостовой системе. Значит должно показать.
Vegas
Если с хоста в контейнер напрямую подключаться, работает? В iptables есть правила dnat? Любой другой образ с паблишем портов работает?
Дурак из фильма
Странно, теперь открылся, когда я указал ентрипоинт с sqlками
Дурак из фильма
tcp6 0 0 :::8080 :::* LISTEN 6430/docker-proxy и нетстат теперь отлично всё показывает
Дурак из фильма
Файрволл не может повлиять на нетстат