Подключение docker контейнеров в одной сети в Jenkins - PullRequest
0 голосов
/ 16 марта 2020

Вот мой конвейер Jenkins, который запускает mysql контейнер и контейнер приложений в одной сети test:

stage ('Test') {
            steps {
                sh "docker network create test"
                script {
                    docker.image("mysql:5.7").withRun("-p 3306:3306 --name=db -e MYSQL_DATABASE=my-secret-pw -e MYSQL_DATABASE=database -e MYSQL_USER=user -e MYSQL_PASSWORD=devpass --entrypoint \"/bin/bash\" -itd --network=test") {
                        sh 'docker network inspect test'
                        docker.image("$CONTAINER_NAME:back").inside("-itd --network=test") {
                            sh 'telnet db 3306'
                        }
                    }
                }
            }
        }

Вот вывод

+ docker network inspect test
[
    {
        "Name": "test",
        "Id": "34549b251607857a7cd5fef30e631b06c7a8e256e8cdb580275c5e769654bccf",
        "Created": "2020-03-15T21:24:27.942976689Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "3c95827efa7d5cc86de5f20ac3a11f3a3e72800ab573aaca6e77dcd6a4e9c070": {
                "Name": "dvmeal_back",
                "EndpointID": "9f8c29a376e3470ea00bae235190079b3ae5185e37d46bab92d7fd7741a435aa",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            },
            "4ad297b527c348cd5f813a2d243862b9290b9de1e815ce14950437e492f6a433": {
                "Name": "db",
                "EndpointID": "b87fe276a80582f2e41d3ef2ac0651b01ec8a48b14123b9151235efac9267e96",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . vacation_bot:back
.
[Pipeline] withDockerContainer
Jenkins seems to be running inside container 0a2e622c2f0359bc5ba61582f4f7a9f1e627a34fe2e01de31e458317bcc25dd6
$ docker run -t -d -u 1000:1000 -itd --network=test -w /var/jenkins_home/workspace/vacation_bot --volumes-from 0a2e622c2f0359bc5ba61582f4f7a9f1e627a34fe2e01de31e458317bcc25dd6 -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** vacation_bot:back cat
$ docker top 653714067d13a2cc1535404109ce107832e2c139bfaeb387e6f180e81d1c4a3f -eo pid,comm
[Pipeline] {
[Pipeline] sh
+ telnet db 3306
telnet: Unable to connect to remote host: Connection refused
Trying 172.18.0.2...

Так что * Контейнер 1009 * находится в тестовой сети, и telnet пытается разрешить IP-адрес, но не удается. В чем причина такого поведения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...