【发布时间】:2020-02-24 10:49:29
【问题描述】:
我目前正在为我们正在运行的一些项目创建集成测试管道,这些项目需要存在 Oracle 数据库才能工作。为此,我使用本文档中提到的指令完成了创建 dockerized 预构建 Oracle 数据库的过程。
https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/prebuiltdb
我已经成功构建了映像,并且能够验证它确实可以正常工作。我已将有问题的图像推送到我们的自定义 docker 存储库之一,并且我还能够成功地从运行器的上下文中获取。
我的主要问题是,当应用程序尝试连接到数据库时,它会因连接被拒绝错误而失败,就好像数据库没有运行一样(请注意,我正在本地运行运行程序以进行测试)。我的问题如下:
使用自定义图像时,跑步者公开的名称是什么? 例如,文档说明当我使用
mysql:latest那么公开的服务名称将是mysql。是这种情况吗 自定义图像也是如此?我应该用别名命名它吗?我是否需要公开端口/桥码头网络才能获得 这能正常工作吗?我失败背后的原因使我 相信运行应用程序的映像无法 与 Oracle 服务正确通信。
作为参考,我的gitlab-ci.yml 有问题的工作如下:
integration_test:
stage: test
before_script:
- echo 127.0.0.1 inttests.myapp.com >> /etc/hosts
services:
- <repository>/devops/fts-ora-inttests-db:latest
script:
- ./gradlew -x:test integration-test:test
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- build
- .gradle
only:
- master
- develop
- merge_requests
- tags
except:
- api
任何人都可以帮忙让它正常工作吗?
【问题讨论】:
标签: oracle docker gitlab gitlab-ci gitlab-ci-runner