docker's service exit with code 'Exit 127' : The system cannot find the path specified docker's service exit with code 'Exit 127' : The system cannot find the path specified docker docker

docker's service exit with code 'Exit 127' : The system cannot find the path specified


When you see next, the first thing you need to do is to check the log of exit container to find what happened.

docker-compose psThe system cannot find the path specified.                 Name                               Command                State                              Ports--------------------------------------------------------------------------------------------------------------------------------------------httproute-simple-match_front-envoy_1     /docker-entrypoint.sh /bin ...   Up         10000/tcp, 0.0.0.0:8000->80/tcp, 0.0.0.0:8001->8001/tcphttproute-simple-match_service_blue_1    /bin/sh -c /usr/local/bin/ ...   Exit 127httproute-simple-match_service_green_1   /bin/sh -c /usr/local/bin/ ...   Exit 127httproute-simple-match_service_red_1     /bin/sh -c /usr/local/bin/ ...   Exit 127

Then, if you check the log of the exit container like next, you will find the error:

C:\test\envoy-proxy-demos\httproute-simple-match>docker logs httproute-simple-match_service_red_1/bin/sh: /usr/local/bin/start_service.sh: not found

When you see this, most probably it's because the file format on windows not compatible with linux. For your scenario, to make all things work, you need do next:

  1. After git clone the source code, modify envoy-proxy-demos/apps/service.py, add #!/usr/bin/python3 to the start of this file.

  2. With git-bash's help, enter into envoy-proxy-demos/apps, change following files format from dos to unix as next:

    $ dos2unix start_service.sh service.pydos2unix: converting file start_service.sh to Unix format...dos2unix: converting file service.py to Unix format...
  3. Finally, build & start:

    docker-compose up --build -d

    NOTE: if you have already do above command in the past, you may still use the cache of build, so your changes may not effect, if this is your thing, please do next instead:

    docker-compose build --no-cachedocker-compose up --build -d

Then, you can see containers all up after above command done:

                 Name                               Command               State                            Ports-----------------------------------------------------------------------------------------------------------------------------------------httproute-simple-match_front-envoy_1     /docker-entrypoint.sh /bin ...   Up      10000/tcp, 0.0.0.0:8000->80/tcp, 0.0.0.0:8001->8001/tcphttproute-simple-match_service_blue_1    /bin/sh -c /usr/local/bin/ ...   Up      10000/tcp, 80/tcphttproute-simple-match_service_green_1   /bin/sh -c /usr/local/bin/ ...   Up      10000/tcp, 80/tcphttproute-simple-match_service_red_1     /bin/sh -c /usr/local/bin/ ...   Up      10000/tcp, 80/tcp


Usually this happens on Docker for Mac or Docker for Windows if you haven't allocated enough RAM for your Docker VM

Check preferences -> advanced and try to add more RAM.