Я понял это.Это так же просто, как добавить переменные окружения в часть variables:
yaml.Вот что сработало для меня: -
test_job:
only:
refs:
- master
- merge_requests
- web
stage: test
services:
- mongo:4.0.4
- redis:5.0.1
- name: registry.gitlab.com/myteam/myprivaterepo:latest
alias: myprivaterepo
variables:
- MYPRIVATEREPO_PORT: 9090 # Had to modify image to use this variable
- MONGODB_URI: mongodb://mongo:27017/aics
- REDIS_CLIENT_HOST: redis
- PORT: 3000 # for app being tested
- SERVER_HOST: myprivaterepo
- SERVER_PORT: 9090
script: npm test
Эти переменные, похоже, применяются ко всем сервисам.
ПРИМЕЧАНИЕ : есть ловушка - вы не можете использовать 2 изображения с одинаковыми именами переменных среды.
Например, я изначально использовал PORT=????
в качестве переменных окружения в обоих myprivaterepo
, и это приложение тестировалось, поэтому появлялась ошибка, говорящая EADDRINUSE
.Поэтому мне пришлось обновить myprivaterepo
, чтобы использовать MYPRIVATEREPO_PORT
В Gitlab-ce поднят тикет , который знает, когда он будет реализован.