George
в убунте так COPY ROOT.crt /usr/local/share/ca-certificates/ROOT.crt RUN update-ca-certificates
George
насчет того, что надо поправить dind - я подумал, что может ты и прав
Alex
так серты никто не пересобирает
как лучше сделать все это - не используя dockerfile
George
теоретически ты, наверное, можешь самому демону еще передать параметр —insecure-registries
Alex
теоретически ты, наверное, можешь самому демону еще передать параметр —insecure-registries
просто надо как то это прописать в gitlab-ci используя docker:18-dind в связке с docker:stable
George
https://gitlab.com/gitlab-org/gitlab-runner/issues/1678
George
services: - name: docker:dind command: ["--insecure-registry=registry.bucker.net"]
George
у парней так работает
Alex
можно застопить пайплайн - и залезть в контейнер dind - и вручную туда положить сертивикаты - хотя бы для проверки
Ivan
Hey! пытаюсь сделать доступным docker host из контейнера делаю как описано тут: https://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/5 docker-compose.yml: version: '2' services: db: image: some/image networks: - dockernet networks: dockernet: external: true в итоге получаю: ERROR: Network dockernet declared as external, but could not be found. Please create the network manually using docker network create dockernet and try again. Но сеть вроде как объявлена в docker-compose.yml Что делаю не так?
Alex
у парней так работает
тогда попробовать вот так? stages: - build build: stage: build image: docker:stable services: - name: docker:18-dind command: ["--insecure-registry=git-registry.example.com"] script: - docker info
George
до запуска компоуза
Ivan
до запуска компоуза
а как сделать чтобы при запуске компоуза она сама создавалась?
George
никак
George
ты же external ее объявил
Ivan
хм, ок, попробую - сенькс!
Ivan
ты же external ее объявил
а без лишних телодвижений просто забиндить на docker host как-то можно?
George
запускать в network host mode, при этом у тебя локалхост = то же что и локалхост хоста
George
но нет изоляции сети
George
а в статье по твоей ссылке все написано
George
The main problem for me was to reliably find out the IP address of the host. So in order to have a fixed set of IPs for both my host and my containers I’ve set up a docker network like this: docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet Now each container can connect to the host under the fixed IP 192.168.0.1. You just need to make sure, that you connect all your containers to that “dockernet” network you just created. You can do that with the --net=dockernet option for docker run. Or from a docker-compose.yml: version: '2' services: db: image: some/image networks: - dockernet networks: dockernet: external: true Networks are described in the network documentation 7.3k. They are quite useful and not very hard to understand.
George
т.е. фиксируют адрес gateway
George
в кастомной сети
Alex
попробуй
Красавец - залогинился / # docker login git-registry.example.com Username: root Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded / #
Alex
вот же жесть - в общем вот это помогло: command: ["--insecure-registry=git-registry.example.com"]
Alex
но единственное мне пришлось в контейнере dind (я туда подключился) прописать в vi /etc/hosts - данные сервера 192.168.100.104 git.example.com 192.168.100.104 git-registry.example.com иначе пишет как Error response from daemon: Get http://git-registry.example.com/v2/: dial tcp: lookup git-registry.example.com on 10.0.2.3:53: no such host
Alex
есть ли возможность это как то сделать или в раннере или в gitlab-ci
Daniil
@gecube, гражданин с самой проактивной позицией в этом чатике, готовый помочь людям в беде 😊
George
хотя как их передать в services хз
Alex
extra-hosts?
ну я на раннере делал extra_hosts = ["gitlab.example.com:192.168.100.103"]
Ruslan
для сервиса можно свой образ собрать с данными в etc/hosts
Alex
можно попробовать как extra_hosts = ["git.example.com:192.168.100.104"] extra_hosts = ["git-registry.example.com:192.168.100.104"] конечно dns не знает его как бы и нет
Alex
в облаке такого бы не было)
Alex
для сервиса можно свой образ собрать с данными в etc/hosts
не хочеться с dockerfilom заморачиваться)
An
Привет, перестал запускаться контейнер, запускаю его через китематик
George
что такое китематик? что в логах?
An
Шлет в логи такое Always On: The availability replica manager is going offline because SQL Server is shutting down. This is an informational message only. No user action is required.
An
Ну это я в кинематике, а есть где-то нормальные логи, типа папки logs ?
George
без понятия. В обычном докере можно сходить в /var/lib/docker/containers/айди_контейнера/айди-контейнера-json.log
Alex
на раннере != в dind, кмк
да, согласен - так не сработало
George
да, согласен - так не сработало
https://gitlab.com/gitlab-org/gitlab-runner/issues/2302
George
entrypoint: ["/bin/sh","-c" ,'echo "ip_address host_name">>/etc/hosts && dockerd-entrypoint.sh']
George
пиздец
Никита
Почему?
потому что контейнер докера это один процесс
Alex
https://gitlab.com/gitlab-org/gitlab-runner/issues/2302
предложили вот такой вариант services: - name: docker:dind alias: docker entrypoint: ["/bin/sh","-c" ,'echo "192.168.100.104 git.example.com">>/etc/hosts && dockerd-entrypoint.sh']
Никита
некоторые конечно и ssh в докере поднимают, но так делать тоже не нгадо
Alex
но если мне надо еще один адресс
George
вы меня со своими догмами задолбали уже
George
вот смотрите
George
предположим, мы суем обработку данных на пхп или питоне в докер
George
очевидно, что пилить КАЖДЫЙ процесс обработки в отдельном контейнере - это дорого
George
с другой стороны, засовывать все 100500 воркеров в один контейнер тоже плохо
George
поэтому нарезаешь какое-то разумное количество воркеров в один контейнер и радуешься жизни
George
но при этом это гомогенный сервис
George
в смысле - не ssh + почта + php + elastic в одном флаконе
George
но если рассмотреть докер только как пакетный менеджер, то почему бы его не использовать вместо lxc? тот же докер с омнибас гитлабом
George
Alex
зачем?
я добавляю два 192.168.100.104 git.example.com 192.168.100.104 git-registry.example.com
George
ну, тут трейдофф тащить дополнительный компонент в виде lxc, или пытаться все пихать в докер
George
больше сущностей - больше нагрузка на опсов
Никита
приходилось отлаживать supervisord, когда непонятно из-за чего падает контейнер? или падает по нескольким взаимосвязанным причинам?
Alex
я добавляю два 192.168.100.104 git.example.com 192.168.100.104 git-registry.example.com
в общем кому интерестно то в сервисный контейнер в hosts добавляем как services: - name: docker:18-dind alias: docker entrypoint: ["/bin/sh", "-c", 'echo "192.168.100.104 git.example.com">>/etc/hosts && echo "192.168.100.104 git-registry.example.com">>/etc/hosts && dockerd-entrypoint.sh']
Alex
проверил - работает
George
честно - при прочих равных лучше, чтобы за живостью сервиса следил сам докер, чем супервизор
George
просто не надо путать разработку и продакшен
Roman
если учесть "s in docker stands for security" - практически незаметно.
Мм.. Не оч понял, что за docker stands for security. Это какой-то их лозунг?) Не гуглится