Service container with huge number of exposed ports cause "argument list too long" error
When a CI job defines a services section with a container that has a huge amount of exposed ports, e.g.
EXPOSE 1000-10000, then the runner will fail with
standard_init_linux.go:190: exec user process caused "argument list too long".
Steps to reproduce
A minimal example repository: https://gitlab.com/klingtnet/gitlab-ci-argument-list-too-long-error Example job: https://gitlab.com/klingtnet/gitlab-ci-argument-list-too-long-error/-/jobs/302521898
test_job: image: alpine services: - name: klingtdotnet/gitlab-ci-argument-list-too-long-error script: - echo 'Hello, World!'
I haven't seen the actual implementation but I assume that the runner will pass
-p src-port:dst-port flags for each port defined in the service containers
Dockerfile. A fix would be to not expose port-ranges defined in the Dockerfile, instead warn when they were found and let the user explicitly expose the ports they need.