到目前为止,我使用以下方法创建了 2 个 Docker 容器Docker 引擎和Docker 组成用于 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"
然而两者似乎无法相互沟通,
因为我无法在 Jenkins 中添加存储库 URL,并且出现以下错误:
我检查了一下,我的本地 Gitlab CE 容器的 URL 在主机 http//:localhost:8081/root/simple-java-maven-app 上运行
我正在使用 Ubuntu,如果它能有所帮助。感谢阅读,如果我可以提供更多信息,请随时问我
答案1
在 Jenkins 服务部分添加以下内容:
jenkins:
...
links:
- gitlab
这将使 Gitlab 容器在http://gitlab:8081/...
文档
您还可以添加虚拟网络,但由于它只有两个容器,所以我推荐这样做。