docker - GitlabCI - 如何使用 docker:dind 在管道中访问正在运行的容器
问题描述
我遇到了一个问题,即使我可以在网上阅读所有内容,我仍然卡住了......
我为 MongoDB 开发了一个“抽象”,并进行了一些单元测试和一些 E2E 测试。对于“端到端”测试,我需要 MongoDB 在我的管道中运行。昨天我在 CloudBuild 上,但今天我在 Gitlab 上,并且......我无法再运行这些测试......
我有以下内容:
gitlab-ci.yml
image: docker:latest
services:
- docker:dind
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: "tcp://docker:2375"
stages:
- test
.anchors:
- &start-mongodb-docker-compose
apk add --no-cache docker-compose
&& docker-compose -f e2e_tests/docker-compose.yml up --build -d
integration-tests:
image: golang:1.16
stage: test
before_script:
- *start-mongodb-docker-compose
script:
- make test
only:
- master
e2e_tests/docker-compose.yml
version: "3.7"
services:
mongodb:
container_name: MongoDB_E2E
image: mongo
restart: always
ports:
- "27017:27017"
生成文件
PROJECT_NAME="yyyyyy"
PKG="gitlab.com/xxxxxx/$(PROJECT_NAME)"
.PHONY: all
all: test
test: unit-tests e2e-tests
unit-tests: ## Run unittests
@go test -v ./... --tags=unit
e2e-tests: ## Run end-to-end tests
@go test -v ./... -p 1 --tags=e2e
coverage: ## Generate global code coverage report
@go test -v -coverprofile .testCoverage.txt
如您所见,我已经从网上尝试了一些,例如DOCKER_HOST
但是.. 目前没有任何效果。如果有人有想法,我很想听听。我也尝试network
像为 CloudBuild 所做的那样设置,但它也没有工作......
谢谢你的帮助!
最大限度
解决方案
推荐阅读
- javascript - 更新 Redux 的 store 后,React.js 什么时候重新渲染组件?
- angular - BehaviourSubject 只发出一次值
- c# - C# MongoDB 和投影。因序列化异常而失败
- firebase - 无法在 Firebase 云功能助手中获得用户响应
- python - 使用python在文件中搜索这些字符串后如何打印?
- stata - 在 estout 命令生成的文件中添加 TeX 代码
- hibernate - Hibernate 查询缓存 LazyInitializationException
- c++ - 为什么三元操作失败不会在try catch中咳嗽
- java - 向Firebase写入数据只能在刚登录后才能工作,除非退出并重新登录才能成功
- python - 无法运行Qt设计器编译的python代码