Назад | Перейти на главную страницу

Как предоставить докер-контейнеру доступ друг к другу?

Пока я сделал 2 контейнера докеров, используя Docker Engine и Docker Compose для доказательства концепции CI. Первый - Jenkins, второй - Gitlab CE.

Вот версия

Docker version 19.03.6
docker-compose version 1.25.4

и у меня есть docker-compose.yml который отлично работает для запуска обоих контейнеров

version: "3"

services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: "gitlab-ci"
    restart: "always"
    hostname: "gitlab.example.com"
    ports:
      - "8081:80"
    volumes:
      - "/srv/gitlab/config:/etc/gitlab"
      - "/srv/gitlab/logs:/var/log/gitlab"
      - "/srv/gitlab/data:/var/opt/gitlab"
    environment:
      GITLAB_OMNIBUS_CONFIG: |
    external_url "http://gitlab"
  jenkins:
    image: "jenkins/jenkins:lts"
    container_name: "jenkins-ci"
    restart: "always"
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - "/home/USER/jenkinsci_docker:/var/jenkins_home"

Однако оба, похоже, не могут общаться друг с другом,

потому что я не могу добавить URL-адрес репозитория в Jenkins, и у меня возникает следующая ошибка:

Я проверил, и URL-адрес моего локального контейнера Gitlab CE работает на хосте http //: localhost: 8081 / root / simple-java-maven-app

Я использую Ubuntu, если это может помочь. Спасибо за чтение, если я могу предоставить дополнительную информацию, не стесняйтесь спрашивать меня

Добавьте следующее в раздел службы Jenkins:

    jenkins:
    ...
      links:
        - gitlab

Это сделает контейнер Gitlab доступным по адресу http://gitlab:8081/... документация

Вы также можете добавить виртуальную сеть, но, поскольку это всего два контейнера, я рекомендую это.