Anton
ок, гляну
Дима
если коротко, создаёте docker-compose файл, кладёте .env файл рядом, описываете как запускать контейнеры (там это называется сервисы)
Дима
ну и затем
Дима
docker compose up —build
Дима
всё
Anton
т.е. с помощью compose я могу настроить среду полностью по шагам, чтобы само все скачивалось, ставилось, настраивались пароли, пути и тд?
Дима
докер компос будет билдить на основе указанного докерфайла сервис, и запускать на основе твоих переменных и настроек, которые ты укажешь
Дима
по сути ты описываешь как запускать докер контейнер в yml формате
Дима
для всех контейнеров этого проекта, да
Johnny
для всех контейнеров этого проекта, да
Тогда этот вариант ему не подойдёт :)
Дима
да, может быть не совсем удобным. Невнимательно кейс почитал
Дима
но композ всё равно осваивать)
NM
Переменные в файле .env будут одинаковыми для всех контейнеров
И прочтены процессами под полтзователем? Плохая практика
Дима
они не экспортятся в твоё пространство
Дима
там просто файлик парсится
Дима
ну и текущий юзер то конечно может подглядеть 😉
Ильдар
Дима
каждому сервису можно указать свой env_file
о, а вот и кейс! Мне даже для большого проекта не пригаждалась эта опция
Ильдар
захочешь в gitlab-ci монорепу втащить - и не такое пригодится...
Дима
Коллеги, как быстро влиться в кубернейтс?
Johnny
У меня стоял подобный вопрос относительно недавно, уточнял здесь. Тоже пользуюсь compose, и просто передаю параметр в контейнер, а скрипт его ловит. Но нет возможности запускать в таком ключе микросервисы через scale (только в swarm)
Johnny
каждому сервису можно указать свой env_file
Странно, когда читал документацию увидел что только один env файл. Видимо плохо читал, посмотрю, спасибо
Konstantin
Докер тут причём?
Konstantin
Ещё раз говорю - глянь описание канала
Konstantin
Если туго с сабжем, то может ну его, этот АйТи?
Anonymous
Если туго с сабжем, то может ну его, этот АйТи?
нет, нужно идти до конца. кто не старается, у того не получается.
Anonymous
мог бы и поддержать.
Anton
есть ли какой-нибудь dummy / empty образ, если мне нужно создать максимально чистый контейнер?
Andrey
+1 FROM scratch
Johnny
есть ли какой-нибудь dummy / empty образ, если мне нужно создать максимально чистый контейнер?
вот почти идеально чистый контейнер :) https://blog.quickmediasolutions.com/2017/09/28/a-1-kb-docker-container.html
Anton
при такой записи COPY ./src /usr/src/mishel в контейнер скопируются все файлы из ./src или создастся src и в нее скопируются файлы?
Anton
или может надо писать так? COPY ./src/* /usr/src/mishel
Ильдар
https://docs.docker.com/engine/reference/builder/#copy в конце пункта описаны правила обработки
Peter
Всем привет! Подскажите, мне необходимо в одном контейнере запустить демона bitcoin Core и пиложение выполняющее роль прокси для него (с целью предварительной обработки поступающих запросов и доработки ответов), какие практики в данном сценарии будет лучше использовать? Спасибо!
Konstantin
Наверное какой-то свой прокси, но суть таже, что и с nginx при деплое
Peter
Использую Windows контейнеры, вообще тоже склоняюсь к варианту двух контейнеров с мостом, в один контейнер думал для удобства при масштабировании
Peter
Наверное какой-то свой прокси, но суть таже, что и с nginx при деплое
Да, в качестве прокси выступает самописное решение, но смысл схож
Konstantin
Ну так масштабируется фронт и бэк по-разному и на удобства не влияет, каждому своё кол-во реплик
Anton
если я в docker-sompose файле укажу объем в виде файл:файл "./nginx.conf:/etc/nginx/nginx.conf" при запуске сервак будет юзать конфиг снаружи? верное решение?
Anton
или лучше скопировать его с заменой?
Anton
ну более универсально хочется, значит volume а это нормально будет работать? можно мапить файл в файл? или только директории?
Anton
ок
Anton
а если нет папки на хосте или в контейнере, то при маппинге volume'a все создастся или упадет?
Anton
linux интересует
Anton
объём, картинка - google.translate?
нет) я видел в статьях эти штуки называют объемами
Anton
так что будет если при мапинге volume'a либо на хосте, либо в контейнере не будет директории?
Andrey
На хосте если не будет, то не помню что. Возможно упадет. Но не факт. При билде точно падает)
Anton
В контейнере не страшно. Она создастся.
ок, тогла лучше создавать заранее
Andrey
ок, тогла лучше создавать заранее
Ну без нее смысла ведь нет запускаться.)
Anton
Ну без нее смысла ведь нет запускаться.)
ну просто я хочу логи nginx'a видеть на хосте, вот и спрашиваю, мапить в созданную папку или само заведется
Anton
любые логи?
Anton
т.е. нет необходимости высовывать их наружу руками, все само высунется?
Anton
ну да, но nginx допустим пишет в файл в /var/log, а мой сервис в другом контейнере в, допустим, /myapp/app.log
Anton
как докер поймет куда писались логи?
Anton
чтобы посмотреть их через docker logs
Anton
ок
Andrey
чтобы посмотреть их через docker logs
Для этого надо делать так чтобы логи писались в stdout. Тогда докер будет складывать их сам. И они же будут доступны по docker logs
Roman
Если сервис мой будет писать просто в консоль, это будет идти в stdout?
Консоль тебе и выводит STDOUT обычно, куда ты и будешь писать для вывода в неё
Joe
Всем привет прошу помощи проект собрал, а вот запустить не могу фаил account-service-all-0.0.1-SNAPSHOT.jar перенести в openjdk:8-jre FROM gradle:jdk8 as builder VOLUME /tmp WORKDIR /opt COPY ./qa-automation /opt USER root RUN rm /opt/.gitignore RUN rm -rf /opt/.git RUN cd /opt/account-service/ && gradle fatjar --stacktrace RUN cd /opt/account-service/build/libs && ls -la COPY /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar /tmp RUN ls -la /tmp FROM openjdk:8-jre EXPOSE 9000 # VOLUME /tmp USER root WORKDIR /app RUN COPY --from=builder /opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar . ADD account-service-all-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Dmitriy
Где почитать про то, как правильно настроить докер в связке с джанго, celery и redis?
Dmitriy
(если у тебя совсем нет опыта)
Dmitriy
Да, конечно
Andrey
В остальном показывай логи.
Joe
В остальном показывай логи.
Ошибка при переносе: Error: ResponseItem.ErrorDetail[code=<null>,message=COPY failed: stat /var/lib/docker/tmp/docker-builder681193942/opt/account-service/build/libs/account-service-all-0.0.1-SNAPSHOT.jar: no such file or directory]