为什么无法在GitLab.com CI中连接到localhost?

时间:2019-10-23 17:33:27

标签: gitlab gitlab-ci gitlab-ci-runner

我想测试一些HTTP REST API,为此,我需要能够让我的工作进行监听并向自身发出请求。

为了模拟这种情况,我制作了一个简单的管道,在其中安装了netcat服务器,然后尝试进行连接。

test_backend_job:
  image: debian:latest
  script:
    - apt-get update && apt-get --assume-yes install netcat
    - nohup nc -l localhost 5000 &
    - sleep 5
    - nc -v localhost 5000

如果在PC上尝试此操作,则连接成功建立。但是在GitLab中,我选择的任何端口都拒绝连接。

(...)
Preparing to unpack .../netcat-traditional_1.10-41.1_amd64.deb ...
Unpacking netcat-traditional (1.10-41.1) ...
Selecting previously unselected package netcat.
Preparing to unpack .../netcat_1.10-41.1_all.deb ...
Unpacking netcat (1.10-41.1) ...
Setting up netcat-traditional (1.10-41.1) ...
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in auto mode
Setting up netcat (1.10-41.1) ...
$ nohup nc -l localhost 5000 &
$ sleep 5
$ nc -v localhost 5000
localhost [127.0.0.1] 5000 (?) : Connection refused
ERROR: Job failed: exit code 1

我想念什么?这应该非常简单。

注意::我正在他们的“云”中运行它。

1 个答案:

答案 0 :(得分:1)

您是否尝试过将netcat映像用作服务,然后运行脚本?

https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#how-services-are-linked-to-the-job