Ваш .gitlab-ci.yml создает службу mon go (с псевдонимом имени хоста "mon go -sv c"), а затем ваш скрипт запускает команду "mon go -sv c ".
В игре два контейнера: пн go и golang. В каком контейнере вы хотите запустить mongo rs.initiate()
?
(я знаю GitLab, но не пн go, но надеюсь, что это немного поможет.)
[Обновлено после прочтения вашего комментария ниже и ответа Калин Валентин в https://forum.gitlab.com/t/gitlab-ci-how-to-exec-mongo-rs-initiate-after-services-running/36124 ]
Работает следующее .gitlab-ci.yml
:
image: golang:1.13
services:
- name: mongo:4.2
alias: mongo-svc
command: ["mongod", "--logpath=/dev/null", "--bind_ip_all", "--replSet=rs0"]
unit_tests:
stage: test
script:
- apt-get install -y gnupg
- wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
- echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
- apt-get update
- apt-get install -y mongodb-org
- mongo --host mongo-svc --eval "rs.initiate()"
Объяснение: - Я устанавливаю пн go (согласно инструкциям по установке на https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/) - сначала я должен был определить, что образ golang основан на Debian, что я и сделал с cat /etc/os-release
в разделе script
задания unit_tests
. - Затем я запускаю оболочку mongo
на образе golang, указываю ее на хост mon go -sv c и запускаю rs.initiate()
.
Вот журнал заданий CI, показывает успех:
Running with gitlab-runner 12.9.0 (4c96e5ad)
on docker-auto-scale 72989761
Preparing the "docker+machine" executor
Using Docker executor with image golang:1.13 ...
Starting service mongo:4.2 ...
Pulling docker image mongo:4.2 ...
Using docker image sha256:c5e5843d9f5fd70b3c39d20c1c06478d067550c2dea667da1e4f1d777576a1f5 for mongo:4.2 ...
Waiting for services to be up and running...
Pulling docker image golang:1.13 ...
Using docker image sha256:a80eb3fa71389ad9ecc1f615c274e8f76690fab74d03f5946c7443350308642c for golang:1.13 ...
Preparing environment
00:03
Running on runner-72989761-project-17974064-concurrent-0 via runner-72989761-srm-1586454360-c1c2ce67...
Getting source from Git repository
00:02
$ eval "$CI_PRE_CLONE_SCRIPT"
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/atsaloli/mongo-test/.git/
Created fresh repository.
From https://gitlab.com/atsaloli/mongo-test
* [new ref] refs/pipelines/134529622 -> refs/pipelines/134529622
* [new branch] master -> origin/master
Checking out abe63386 as master...
Skipping Git submodules setup
Restoring cache
Downloading artifacts
00:01
Running before_script and script
$ apt-get install -y gnupg
Reading package lists...
Building dependency tree...
Reading state information...
gnupg is already the newest version (2.2.12-1+deb10u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
Warning: apt-key output should not be parsed (stdout is not a terminal)
OK
$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main
$ apt-get update
Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]
Ign:4 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 InRelease
Get:5 http://security.debian.org/debian-security buster/updates/main amd64 Packages [187 kB]
Get:6 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 Release [1488 B]
Get:7 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:8 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 Release.gpg [801 B]
Get:9 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 Packages [4083 B]
Get:10 http://deb.debian.org/debian buster-updates/main amd64 Packages [7380 B]
Fetched 8344 kB in 2s (3626 kB/s)
Reading package lists...
$ apt-get install -y mongodb-org
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
The following NEW packages will be installed:
mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell
mongodb-org-tools
0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Need to get 97.7 MB of archives.
After this operation, 296 MB of additional disk space will be used.
Get:1 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 mongodb-org-shell amd64 4.2.5 [12.1 MB]
Get:2 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 mongodb-org-server amd64 4.2.5 [18.5 MB]
Get:3 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 mongodb-org-mongos amd64 4.2.5 [10.2 MB]
Get:4 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 mongodb-org-tools amd64 4.2.5 [57.0 MB]
Get:5 http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2/main amd64 mongodb-org amd64 4.2.5 [3532 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 97.7 MB in 2s (40.4 MB/s)
Selecting previously unselected package mongodb-org-shell.
(Reading database ... 15401 files and directories currently installed.)
Preparing to unpack .../mongodb-org-shell_4.2.5_amd64.deb ...
Unpacking mongodb-org-shell (4.2.5) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../mongodb-org-server_4.2.5_amd64.deb ...
Unpacking mongodb-org-server (4.2.5) ...
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../mongodb-org-mongos_4.2.5_amd64.deb ...
Unpacking mongodb-org-mongos (4.2.5) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../mongodb-org-tools_4.2.5_amd64.deb ...
Unpacking mongodb-org-tools (4.2.5) ...
Selecting previously unselected package mongodb-org.
Preparing to unpack .../mongodb-org_4.2.5_amd64.deb ...
Unpacking mongodb-org (4.2.5) ...
Setting up mongodb-org-server (4.2.5) ...
Adding system user `mongodb' (UID 101) ...
Adding new user `mongodb' (UID 101) with group `nogroup' ...
Not creating home directory `/home/mongodb'.
Adding group `mongodb' (GID 102) ...
Done.
Adding user `mongodb' to group `mongodb' ...
Adding user mongodb to group mongodb
Done.
Setting up mongodb-org-shell (4.2.5) ...
Setting up mongodb-org-tools (4.2.5) ...
Setting up mongodb-org-mongos (4.2.5) ...
Setting up mongodb-org (4.2.5) ...
$ mongo --host mongo-svc --eval "rs.initiate()"
MongoDB shell version v4.2.5
connecting to: mongodb://mongo-svc:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("3f798624-0569-423d-a8e1-03e84f9fee7f") }
MongoDB server version: 4.2.5
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "cf8a49d94069:27017",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1586455071, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1586455071, 1)
}
Running after_script
00:02
Saving cache
Uploading artifacts for successful job
00:02
Job succeeded