@docker_ru

Страница 1365 из 1375
Aleksandr
29.07.2019
07:42:11
это поинтереснее будет - Тебе либо сертифиаты надо добавлять в блок before_script - но я уже если честно заколебался - в общем как только я пытаюсь в контейнер docker:dind что либо положить (сделать) то он отваливаеться - пробовал вот так services: - name: docker:18-dind command: - /bin/sh - -c - | echo "$GIT_EXAMPLE_COM_CTR" > /etc/ssl/certs/git.example.com.crt || exit echo "$GIT_REGISTRY_EXAMPLE_COM_CTR" > /etc/ssl/certs/git-registry.example.com.crt || exit dockerd-entrypoint.sh || exit stages: - build # --- commit no tag build: stage: build image: docker:stable script: - docker info

так вот docker:18-dind - он перестат работать - и следовательно даже script: - docker info не отрабатывает

Почему?
потому что все эти переменные я уже позаносил в в гитлаб - но вопрос заключаеться в том как dind контейнеру их распознать (то есть подкинуть) что бы логин успешно прошел

хоть ты на екзекутор shell переходи - т/к/ с сервера полключаюсь успешно

Google
Ruslan
29.07.2019
07:44:51
Все отлично работает build_push: stage: build image: docker:latest dependencies: - composer script: - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER registry.gitlab.com --password-stdin

Ruslan
29.07.2019
07:46:50
зачем ехо?))
так захотелось

Aleksandr
29.07.2019
07:47:03
Error response from daemon: Get https://git-registry.example.com/v2/: Get https://git.example.com//jwt/auth?account=root&client_id=docker&offline_token=true&service=container_registry: x509: certificate signed by unknown authority

тут дело не в том что я должен пароль и логин использовать - а в сертификатах

Andrey
29.07.2019
07:48:04
???

Ruslan
29.07.2019
07:48:15
понятно

Google
Aleksandr
29.07.2019
07:48:56
ну так напиши рабочий код - епта

если тебе что то не нравиться

Aleksandr
29.07.2019
07:51:25
все очень просто - 2-ва сервера (ubuntu) - два гитлаба - первый простой без реджистри - втрой с реджестри - в частности первый https://gitlab.example.com - второй https://git.example.com и в месте с ним https://git-registry.example.com

вот и все

Andrey
29.07.2019
07:52:36
хорошо. см попробуй серт в контейнер засунуть ЦА-серт от реджитори

Aleksandr
29.07.2019
07:53:28
хорошо. см попробуй серт в контейнер засунуть ЦА-серт от реджитори
согласен - я это и пробовал сделать - но docker:dind что то отваливаеться когда я пытаюсь например вот так services: - name: docker:18-dind command: - /bin/sh - -c - | echo "$GIT_EXAMPLE_COM_CTR" > /etc/ssl/certs/git.example.com.crt || exit echo "$GIT_REGISTRY_EXAMPLE_COM_CTR" > /etc/ssl/certs/git-registry.example.com.crt || exit dockerd-entrypoint.sh || exit

может потому что должен всегда работать dockerd-entrypoint.sh

в образе на докер хабе ENTRYPOINT ["dockerd-entrypoint.sh"] CMD []

Andrey
29.07.2019
07:55:36
ну у тебя не в образе проблема же

Aleksandr
29.07.2019
07:55:44
а при регистрации раннера --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ --docker-volumes /etc/ssl/certs:/etc/ssl/certs \

не поможет?

Andrey
29.07.2019
07:58:38
https://gitlab.com/gitlab-com/support-forum/issues/3524

Aleksandr
29.07.2019
08:01:41
разве что variables: DOCKER_DRIVER: overlay2 REGISTRY_URL: git-registry.example.com прописать

Google
George
29.07.2019
08:04:08
а в docker:stable

Aleksandr
29.07.2019
08:04:33
тебе не в DIND, как мне кажется, надо класть
хмм - хорошо - можно попробовать

тебе не в DIND, как мне кажется, надо класть
просто мне казалось когда делаешь docker login как бы все это через dind идет

хоть и клиент docker:stable

George
29.07.2019
08:06:00
я тебе более того скажу

echo "$GIT_EXAMPLE_COM_CTR" > /etc/ssl/certs/git.example.com.crt || exit echo "$GIT_REGISTRY_EXAMPLE_COM_CTR" > /etc/ssl/certs/git-registry.example.com.crt || exit dockerd-entrypoint.sh || exit

так серты никто не пересобирает

в убунте так COPY ROOT.crt /usr/local/share/ca-certificates/ROOT.crt RUN update-ca-certificates

насчет того, что надо поправить dind - я подумал, что может ты и прав

Aleksandr
29.07.2019
08:08:11
так серты никто не пересобирает
как лучше сделать все это - не используя dockerfile

George
29.07.2019
08:08:11
теоретически ты, наверное, можешь самому демону еще передать параметр —insecure-registries

Aleksandr
29.07.2019
08:09:25
теоретически ты, наверное, можешь самому демону еще передать параметр —insecure-registries
просто надо как то это прописать в gitlab-ci используя docker:18-dind в связке с docker:stable

George
29.07.2019
08:10:23
https://gitlab.com/gitlab-org/gitlab-runner/issues/1678

services: - name: docker:dind command: ["--insecure-registry=registry.bucker.net"]

у парней так работает

Aleksandr
29.07.2019
08:10:34
можно застопить пайплайн - и залезть в контейнер dind - и вручную туда положить сертивикаты - хотя бы для проверки

Ivan
29.07.2019
08:11:30
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 Что делаю не так?

Aleksandr
29.07.2019
08:13:14
у парней так работает
тогда попробовать вот так? stages: - build build: stage: build image: docker:stable services: - name: docker:18-dind command: ["--insecure-registry=git-registry.example.com"] script: - docker info

Google
George
29.07.2019
08:14:17
до запуска компоуза

Ivan
29.07.2019
08:16:17
до запуска компоуза
а как сделать чтобы при запуске компоуза она сама создавалась?

George
29.07.2019
08:16:21
никак

ты же external ее объявил

Ivan
29.07.2019
08:17:04
хм, ок, попробую - сенькс!

ты же external ее объявил
а без лишних телодвижений просто забиндить на docker host как-то можно?

George
29.07.2019
08:19:13
запускать в network host mode, при этом у тебя локалхост = то же что и локалхост хоста

Admin


George
29.07.2019
08:19:16
но нет изоляции сети

а в статье по твоей ссылке все написано

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.

т.е. фиксируют адрес gateway

в кастомной сети

Aleksandr
29.07.2019
08:25:34
попробуй
Красавец - залогинился / # 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 / #

вот же жесть - в общем вот это помогло: command: ["--insecure-registry=git-registry.example.com"]

но единственное мне пришлось в контейнере 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

есть ли возможность это как то сделать или в раннере или в gitlab-ci

Daniil
29.07.2019
08:30:20
@gecube, гражданин с самой проактивной позицией в этом чатике, готовый помочь людям в беде ?

Google
Aleksandr
29.07.2019
08:34:42
extra-hosts?
ну я на раннере делал extra_hosts = ["gitlab.example.com:192.168.100.103"]

Ruslan
29.07.2019
08:35:43
для сервиса можно свой образ собрать с данными в etc/hosts

Aleksandr
29.07.2019
08:35:53
можно попробовать как extra_hosts = ["git.example.com:192.168.100.104"] extra_hosts = ["git-registry.example.com:192.168.100.104"] конечно dns не знает его как бы и нет

в облаке такого бы не было)

для сервиса можно свой образ собрать с данными в etc/hosts
не хочеться с dockerfilom заморачиваться)

An
29.07.2019
08:41:18
Привет, перестал запускаться контейнер, запускаю его через китематик

George
29.07.2019
08:41:40
что такое китематик? что в логах?

An
29.07.2019
08:41:54
Шлет в логи такое 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
29.07.2019
08:42:31
Ну это я в кинематике, а есть где-то нормальные логи, типа папки logs ?

George
29.07.2019
08:43:23
без понятия. В обычном докере можно сходить в /var/lib/docker/containers/айди_контейнера/айди-контейнера-json.log

Aleksandr
29.07.2019
08:44:30
на раннере != в dind, кмк
да, согласен - так не сработало

George
29.07.2019
08:45:22
да, согласен - так не сработало
https://gitlab.com/gitlab-org/gitlab-runner/issues/2302

entrypoint: ["/bin/sh","-c" ,'echo "ip_address host_name">>/etc/hosts && dockerd-entrypoint.sh']

пиздец

Dmitry
29.07.2019
08:51:44
Никитяо
29.07.2019
08:52:11
Почему?
потому что контейнер докера это один процесс

Aleksandr
29.07.2019
08:52:34
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']

Страница 1365 из 1375