Пока я сделал 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/...
документация
Вы также можете добавить виртуальную сеть, но, поскольку это всего два контейнера, я рекомендую это.