docker - GitLab CI,从 docker dind 连接到 Elastic Search 服务
问题描述
我有在 docker 容器中运行的测试。为此,我使用 docker-dind 服务,我的 .gitlab-ci:
image: "docker:17"
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
- name: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
alias: elasticsearch
command: [ "bin/elasticsearch", "-Expack.security.enabled=false", "-Ediscovery.type=single-node" ]
stages:
- test
before_script:
- apk --update add py2-pip python3 bash zip ansible openssh git docker-py curl
- pip3 install docker-compose
- docker info
- docker-compose --version
# Login to registry.gitlab.com
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
test:
script:
- curl "http://elasticsearch:9200" # this works
- docker-compose docker-compose.test.yml build --pull
- docker-compose docker-compose.test.yml run app
stage: test
我的测试为此使用 ES 我添加了 ES 服务,但我无法从运行测试的容器连接到 ES 集群。当 CI 工作时,在我的带有跑步者的机器上,我有:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5d9a64bbe8e 1ee5a99eba5f "gitlab-runner-build" 1 second ago Up Less than a second runner-b7dcaf73-project-2199705-concurrent-1-predefined-0
c85c49d35946 ca27036dd5e7 "bin/elasticsearch -…" 16 seconds ago Up 15 seconds 9200/tcp, 9300/tcp runner-b7dcaf73-project-2199705-concurrent-1-docker.elastic.co__elasticsearch__elasticsearch-1
57472d0300ad 85e924caedbd "dockerd-entrypoint.…" 17 seconds ago Up 16 seconds 2375/tcp runner-b7dcaf73-project-2199705-concurrent-1-docker-0
598c019aa28c - 一个带有跑步者的容器,我可以进入这个容器运行curl "http://elasticsearch:9200"
并且它可以工作
57472d0300ad - dind 容器,对吧?我可以进入这个容器但curl "http://elasticsearch:9200"
不起作用,docker ps 显示:
/ # docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
252f0588a41d backend_app "make _inside_docker…" 6 seconds ago Up 5 seconds 8080/tcp backend_app_run_116d12907320
cd0ebb2f1d2d postgres:9.6 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 5432/tcp backend_postgresql_1
如何从带有测试(252f0588a41d)的容器连接到带有 ES 的容器?谢谢。
解决方案
推荐阅读
- c# - 如何生成用于测试的瞬态错误
- ios - 如何将数据从视图控制器传递到其他视图控制器
- css - 如何将项目与全屏登录页面的底部对齐?
- couchbase - 从 Couchbase 5.5 到 Couchbase 6.5 的 cbrestore/cbbackup
- mongodb - 分片集合时的 MongoDB 错误:未找到 ns
- vim - gVim 启动时出错:E121:未定义变量:paste#paste_cmd
- java - Jooq 全球文物重命名
- java - Scala 中的泛型类型
- go - gocqlx Updatebuilder 并得到错误的结果
- android - 我使用颤振制作了一个 android 应用程序,有没有办法从相同的代码构建一个 IPA?