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 ps
The 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/tcp
httproute-simple-match_service_blue_1 /bin/sh -c /usr/local/bin/ ... Exit 127
httproute-simple-match_service_green_1 /bin/sh -c /usr/local/bin/ ... Exit 127
httproute-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:
After git clone the source code, modify envoy-proxy-demos/apps/service.py
, add #!/usr/bin/python3
to the start of this file.
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.py
dos2unix: converting file start_service.sh to Unix format...
dos2unix: converting file service.py to Unix format...
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-cache
docker-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/tcp
httproute-simple-match_service_blue_1 /bin/sh -c /usr/local/bin/ ... Up 10000/tcp, 80/tcp
httproute-simple-match_service_green_1 /bin/sh -c /usr/local/bin/ ... Up 10000/tcp, 80/tcp
httproute-simple-match_service_red_1 /bin/sh -c /usr/local/bin/ ... Up 10000/tcp, 80/tcp